1153

題意:給一個(gè)素?cái)?shù)n,求這樣的字符串,長度為n-1,在尾部添加一個(gè)字符x,然后執(zhí)行n-1次這樣的操作:每k(1到n-1)個(gè)字符中提取一個(gè)字符,構(gòu)成長度為n-1的新字符串。這樣,就形成了n-1行的長度為n-1的字符串。其中的字符串要么是原來的字符串,要么是補(bǔ)字符串,也就是說,結(jié)構(gòu)中只有兩種字符串,字符不能全部相同。(字符只包含0和1)

作者:kgduu
來源:CSDN
原文:https://blog.csdn.net/xiexingshishu/article/details/45771203
版權(quán)聲明:本文為博主原創(chuàng)文章,轉(zhuǎn)載請(qǐng)附上博文鏈接!


思路:
第一部分:列式子
1.a[1%n] a[2%n]......a[n-1%n]
2.a[2%n] a[4%n]......a[2(n-1)%n]
3.a[3%n] a[6%n]........
4...
..
..
n-1: a[(n-1)%n] a[2
(n-1)%n]......a[(n-1)*(n-1)%n]

第二部分:結(jié)合兩種情況做差
①:1-2每一個(gè)都對(duì)應(yīng)相同
②:1-2每一個(gè)都對(duì)應(yīng)相反
由①得到:(一)
a[1%n]=a[2%n]
a[2%n]=a[4%n]
...
...
a[(n-1)%N]=a[2(n-1)%n]
由②得到:(二)
a[1%n]!=a[2%n]
a[2%n]!=a[4%n]
...
...
a[(n-1)%n]!=a[(n-1)%n]
將一、二合并:
(三)
a[1%n]=a[4%n]
a[2%n]=a[6%n]
...
第三部分:得到結(jié)論
觀察得到:a[i
I%n]都會(huì)相同,其他項(xiàng)都相同
又因?yàn)椋好恳晃徊荒芏枷嗤?,還要滿足整個(gè)01序列的字典序最小
再加上,a[11%n]是第一項(xiàng),
所以,只要讓a[i
i%n]=0,其他=1,即可

#include<bits/stdc++.h>
#define ll long long
#define maxsize 1000000
#define mem(a,b) memset(a,b,sizeof(a))
using namespace std;
int p,a[maxsize];
int main()
{
    while(cin>>p&&p)
    {
        if(p<3)
        {
            printf("Impossible\n");
            continue;
        }
        mem(a,0);
        for(ll i=1;i<p;++i)
        {
            a[(i*i)%p]=1;
        }
        for(ll i=1;i<=p-1;++i)
            printf("%d",!a[i]);
        cout<<endl;
    }
    return 0;
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容