zoukankan      html  css  js  c++  java
  • [考试反思]0304省选模拟37:面对

     

    $T1$比较简单,虽说正解是$O(n)$的但是没卡$O(nlogn)$的。那就比较简单了。

    $T2$写的正解,数组开小+被卡常。也没什么好说的。

    然后$T3$又是一个可爱的提交答案题。然而主要是$T1/2$调太久了,所以剩下思考它的事件也不多了。

     其实不是很可想。得亏没有把太多时间砸在上面。

    而且貌似$spj$写挂了的样子,评分参数没什么用。

    (这么毒瘤难写的题再卡常谁还会去做啊!!!)

    改题也就没啥好说的。中午花了点时间卡常把$T2$卡常。

    然后剩下下午加晚上的时间砸在$T3$上刚好做出来。

    T1:奶酪

    大意:树。求断开每条边后,两个联通块分别的直径。$n le 2 imes 10^6$

    做法不少。首先可以直接预处理$dfs$序前后缀的直径端点及长度,然后每次查询的就是两端区间合并,时间复杂度$O(nlogn)$

    也可以直接树形$dp$纪录前三大值就可以了。时间复杂度$O(n)$

    然而其实两种写法的代码都挺恶心。

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 #define S 8888888
     4 #define ll long long
     5 #define mod 2333333333333333
     6 int n,fir[S],l[S],to[S],v[S],dfn[S],ec,tim,sz[S],f[S],hson[S],top[S],prea[S],preb[S],sufa[S],sufb[S],idfn[S],dfr[S],suba[S],subb[S];
     7 ll dep[S],ans,pred[S],sufd[S],subd[S];
     8 void link(int a,int b,int w){l[++ec]=fir[a];fir[a]=ec;to[ec]=b;v[ec]=w;}
     9 void con(int a,int b,int w){link(a,b,w);link(b,a,w);}
    10 int read(){
    11     register int p=0;register char ch=getchar();
    12     while(!isdigit(ch))ch=getchar();
    13     while(isdigit(ch))p=p*10+ch-48,ch=getchar();
    14     return p;
    15 }
    16 void dfs(int p,int fa){
    17     f[p]=fa;sz[p]=1;
    18     for(int i=fir[p];i;i=l[i])if(to[i]!=fa){
    19         dep[to[i]]=dep[p]+v[i];dfs(to[i],p);sz[p]+=sz[to[i]];
    20         if(sz[to[i]]>sz[hson[p]])hson[p]=to[i];
    21     }
    22 }
    23 void DFS(int p,int tp){
    24     dfn[p]=++tim;idfn[tim]=p;top[p]=tp;
    25     if(hson[p])DFS(hson[p],tp);
    26     for(int i=fir[p];i;i=l[i])if(!dfn[to[i]])DFS(to[i],to[i]);
    27     dfr[p]=tim;
    28 }
    29 int lca(int a,int b){
    30     while(top[a]!=top[b])if(dep[top[a]]>dep[top[b]])a=f[top[a]];else b=f[top[b]];
    31     return dep[a]>dep[b]?b:a;
    32 }
    33 ll dt(int a,int b){return dep[a]+dep[b]-2*dep[lca(a,b)];}
    34 ll merge(int p,int s){
    35     if(s==n+1)return pred[p];
    36     return max(max(max(max(max(pred[p],sufd[s]),dt(prea[p],sufa[s])),dt(preb[p],sufa[s])),dt(preb[p],sufa[s])),dt(preb[p],sufb[s]));
    37 }
    38 void Dfs(int p,int fa){
    39     suba[p]=subb[p]=p;
    40     for(int i=fir[p],y;y=to[i];i=l[i])if(y!=fa){
    41         ll x=merge(dfn[y]-1,dfr[y]+1);Dfs(y,p);
    42         ans=(ans+23333*max(x,subd[y])+2333*min(x,subd[y]))%mod;
    43         ll aa=dt(suba[p],suba[y]),ab=dt(suba[p],subb[y]),ba=dt(subb[p],suba[y]),bb=dt(subb[p],subb[y]);
    44         subd[p]=max(max(max(max(max(aa,ab),ba),bb),subd[p]),subd[y]);
    45         if(subd[p]==subd[y])suba[p]=suba[y],subb[p]=subb[y];
    46         else if(subd[p]==aa)suba[p]=suba[p],subb[p]=suba[y];
    47         else if(subd[p]==ab)suba[p]=suba[p],subb[p]=subb[y];
    48         else if(subd[p]==ba)suba[p]=subb[p],subb[p]=suba[y];
    49         else if(subd[p]==bb)suba[p]=subb[p],subb[p]=subb[y];
    50     }
    51 }
    52 int main(){
    53     n=read();
    54     for(int i=1,a,b,w;i<n;++i)ans=(ans+2+23*i+233ll*i*i)%mod,a=read(),b=read(),w=read(),con(a,b,w);
    55     dfs(1,0);DFS(1,1);
    56     prea[1]=preb[1]=idfn[1];
    57     for(int i=2;i<=n;++i){
    58         ll p1=dt(prea[i-1],idfn[i]),p2=dt(preb[i-1],idfn[i]);
    59         if(pred[i-1]>=p1&&pred[i-1]>=p2)pred[i]=pred[i-1],prea[i]=prea[i-1],preb[i]=preb[i-1];
    60         else if(p1>=p2)pred[i]=p1,prea[i]=prea[i-1],preb[i]=idfn[i];
    61         else pred[i]=p2,prea[i]=idfn[i],preb[i]=preb[i-1];
    62     }
    63     sufa[n]=sufb[n]=idfn[n];
    64     for(int i=n-1;i;--i){
    65         ll p1=dt(sufa[i+1],idfn[i]),p2=dt(sufb[i+1],idfn[i]);
    66         if(sufd[i+1]>=p1&&sufd[i+1]>=p2)sufd[i]=sufd[i+1],sufa[i]=sufa[i+1],sufb[i]=sufb[i+1];
    67         else if(p1>=p2)sufd[i]=p1,sufa[i]=sufa[i+1],sufb[i]=idfn[i];
    68         else sufd[i]=p2,sufa[i]=idfn[i],sufb[i]=sufb[i+1];
    69     }
    70     Dfs(1,0);
    71     printf("%lld
    ",ans);
    72 }
    View Code

    T2:走

    大意:有向图,边上有字符,每个点至少一条出边。从$1$出发,若走出的字符串$S$满足$A$是$S$子串或$B$是$S$子序列则直接停止。求期望步数。

    $n le 20,|A| le 10,|B| le 50$

    最暴力的做法是对$dp[i][j][k]$表示在$i$节点,与$A$匹配$j$位与$B$匹配$k$位,期望再走的步数,高斯消元。

    可以发现$B$这个子序列的限制的值是单调的,所以可以逐层转移。

    所以时间复杂度是$O((n|A|)^3 |B|)$。使劲卡常就是了。

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 #define mod 998244353
     4 int n,m,fir[221],v[266666],l[266666],to[266666],dp[222][211][255],la,lb,nxt[211][226],pc,A[2666][2666],o[222][211],deg[222];
     5 char a[211],b[255],s[25];
     6 int qp(int b,int t,int a=1){for(;t;t>>=1,b=1ll*b*b%mod)if(t&1)a=1ll*a*b%mod;return a;}
     7 int mo(int x){return x>=mod?x-mod:x;}
     8 void Gauss(){
     9     for(int i=1;i<pc;++i){
    10         for(int iv=qp(A[i][i],mod-2),j=pc;j>=i;--j)A[i][j]=1ll*A[i][j]*iv%mod;
    11         for(int j=i+1;j<pc;++j)if(A[j][i])for(int k=pc;k>=i;--k)A[j][k]=mo(A[j][k]-1ll*A[j][i]*A[i][k]%mod+mod);
    12     }
    13     for(int i=pc-1;i;--i)for(int j=i-1;j;--j)A[j][pc]=mo(A[j][pc]-1ll*A[j][i]*A[i][pc]%mod+mod); 
    14 }
    15 int main(){
    16     scanf("%d%d",&n,&m);
    17     for(int i=1,x,y;i<=m;++i){
    18         scanf("%d%d%s",&x,&y,s);deg[x]++;
    19         l[i]=fir[x];fir[x]=i;to[i]=y;v[i]=s[0]-'a';
    20     }
    21     scanf("%s%s",a+1,b+1);
    22     la=strlen(a+1);lb=strlen(b+1);
    23     nxt[0][a[1]-'a']=1;
    24     for(int i=1;i<la;++i){
    25         for(int c=0;c<26;++c)for(int j=i+1;j;--j){
    26             int ok=1;
    27             for(int k=1;k<=i&&k<j;++k)if(a[k]!=a[i-j+1+k])ok=0;
    28             if(ok&&a[j]=='a'+c){nxt[i][c]=j;break;}
    29         }
    30     }
    31     for(int L=lb-1;~L;--L){
    32         pc=0;
    33         for(int i=1;i<=n;++i)for(int j=0;j<la;++j)o[i][j]=++pc,A[pc][pc]=1; pc++;
    34         for(int i=1;i<=n;++i)for(int j=0;j<la;++j){
    35             A[o[i][j]][pc]=1;
    36             for(int x=fir[i];x;x=l[x])if(nxt[j][v[x]]!=la) 
    37                 if(v[x]+'a'==b[L+1])A[o[i][j]][pc]=(A[o[i][j]][pc]+1ll*qp(deg[i],mod-2)*dp[to[x]][nxt[j][v[x]]][L+1])%mod;
    38                 else A[o[i][j]][o[to[x]][nxt[j][v[x]]]]=(A[o[i][j]][o[to[x]][nxt[j][v[x]]]]-qp(deg[i],mod-2)+mod)%mod;
    39         }
    40         Gauss();
    41         for(int i=1;i<=n;++i)for(int j=0;j<la;++j)dp[i][j][L]=A[o[i][j]][pc];
    42         for(int i=1;i<=pc;++i)for(int j=1;j<=pc;++j)A[i][j]=0;
    43     }
    44     cout<<dp[1][0][0]<<endl;
    45 }
    View Code

    T3:机

    大意:提交答案题。用新语言编写代码完成任务。由于$spj$炸了所以没有常数限制。(别过分了)

    你有一个下标$[0,10000120]$的数组,所有运算对$10000121$取模。

    新语言支持:

    $add a b c$:其中$c$必须是常量。该操作等价于$A[a]=b+c;$。(有取模,下同)

    $mul  a b c$:等价于$A[a]=b imes c;$

    $pow a b c$:等价于$A[a]=b^c;$

    $input a$:等价于$cin>>A[a];$

    $output a$:等价于$cout<<a<<endl;$

    $if a b string$:等价于$if(a==b)goto string;$

    $label string$:等价于$string:;$

    $test1:$读入一个数,输出它的$100000$次幂。

    模拟。读懂题就给分。

    1 input 1 
    2 pow 1 A[1] 100000
    3 output A[1]
    View Code

     $test2:$读入$n$,再读入$n$个数。倒序输出。

    模拟。需要实现$for$循环。两个$label$判断即可。

    循环实现如果需要$-1$的话就$add mod-1$就行了。除法也就是乘法逆元。

     1 input 0
     2 
     3 label one
     4 add 30001 A[30001] 1
     5 input A[30001]
     6 if A[0] A[30001] two
     7 if 0 0 one
     8 label two
     9 
    10 label three
    11 output A[A[0]]
    12 add 0 A[0] 10000120
    13 if A[0] 0 four
    14 if 0 0 three
    15 label four
    View Code

     $test3:$读入$n,q$,读入$A[1...n]$。再读入$q$对$l,r$。回答$prodlimits_{i=l}^{r} a_i$

    这不太能模拟。但是是个很明显的前缀积。多分配一段空间来存前缀,然后运用快速幂直接求逆元就可以了。

     1 input 33333
     2 input 66666
     3 add 0 0 1
     4 
     5 label a
     6 add 55555 A[55555] 1
     7 input A[55555]
     8 mul A[55555] A[A[55555]] A[A[77777]]
     9 add 77777 A[77777] 1
    10 if A[33333] A[55555] b
    11 if 0 0 a
    12 label b
    13 
    14 label c 
    15 add 88888 A[88888] 1
    16 input 123456
    17 input 654321
    18 add 123456 A[123456] 10000120
    19 pow 99999 A[A[123456]] 10000119
    20 mul 99999 A[99999] A[A[654321]]
    21 output A[99999]
    22 if A[88888] A[66666] d
    23 if 0 0 c
    24 label d
    View Code

    $test4:$读入$n$。是$2$的倍数输出$1$,否则输出$0$。 

    这个没想到,后面就都卡住了。

    在模意义下,加减乘除貌似都不能区分奇偶数。

    于是我们只能寄希望于快速幂。

    然后常用但是却一时难以想起来的是$(-1)^i$可以用来判断奇偶。

    1 input 0
    2 pow 0 10000120 A[0]
    3 if A[0] 1 gg
    4 output 0
    5 if 0 0 xx
    6 label gg
    7 output 1
    8 label xx
    View Code

     $test5:$同上。$2$改成$3$。

    我们在模意义下很难做好什么。但是在上一个测试点中我们成功的摆脱了模的限制。

    我们能判断一个数的奇偶。我们还可以做常数的加减乘除。(除限定于整除)

    那么我们就已经可以把一个数分解成二进制下的了。

    二进制下,从高位到低位扫一遍,像做哈希一样,进制是$2$模数是$3$。

    扫到底看是不是$0$就知道$3$的倍数与否了。

    因为这数很小所以处理起来挺简单的。

     1 input 1234567
     2 add 0 0 0
     3 add 1 0 1
     4 add 2 0 2
     5 add 3 0 0
     6 add 4 0 1
     7 add 5 0 2
     8 
     9 add 12345 0 12345
    10 
    11 label begin
    12     pow 666666 10000120 A[1234567]
    13     add 12345 A[12345] 1
    14     if A[666666] 1 no
    15         add A[12345] 0 1
    16         add 1234567 A[1234567] 10000120
    17     label no
    18     mul 1234567 A[1234567] 5000061
    19 if A[1234567] 0 gg
    20 if 0 0 begin
    21 label gg
    22 
    23 
    24 add 54321 A[12345] 0
    25 label bg
    26     mul 100000 A[100000] 2
    27     if A[A[54321]] 0 noadd
    28         add 100000 A[100000] 1
    29     label noadd
    30     add 100000 A[A[100000]] 0
    31     add 54321 A[54321] 10000120
    32 if 12345 A[54321] fail
    33 if 0 0 bg
    34 label fail
    35 
    36 if A[100000] 0 ok
    37 if 0 0 skyh
    38 label ok
    39 output 1
    40 if 0 0 xxx
    41 label skyh
    42 output 0
    43 label xxx
    View Code

     $test6:$读入$a,b$输出$a+b$

    同理啊,转化成二进制。

    二进制加减法就简单多了。然而其实并不用考虑进位。

    因为最后高位到低位扫下来不取模就可以了。

     1 input 1234567
     2 
     3 label begin
     4     pow 666666 10000120 A[1234567]
     5     add 12345 A[12345] 1
     6     if A[666666] 1 no
     7         add A[12345] 0 1
     8         add 1234567 A[1234567] 10000120
     9     label no
    10     mul 1234567 A[1234567] 5000061
    11 if A[1234567] 0 gg
    12 if 0 0 begin
    13 label gg
    14 
    15 input 1234567
    16 
    17 label bbegin
    18     pow 666666 10000120 A[1234567]
    19     add 123456 A[123456] 1
    20     if A[666666] 1 noo
    21         add A[123456] A[A[123456]] 1
    22         add 1234567 A[1234567] 10000120
    23     label noo
    24     mul 1234567 A[1234567] 5000061
    25 if A[1234567] 0 ggg
    26 if 0 0 bbegin
    27 label ggg
    28 
    29 label bbbegin
    30     add 12345 A[12345] 1
    31     add 123456 A[123456] 10000120
    32 if A[123456] 0 gggg
    33 if 0 0 bbbegin
    34 label gggg
    35 
    36 label bbbbegin
    37     mul 0 A[0] 2
    38     if A[A[12345]] 0 xx
    39     add 0 A[0] 1
    40     if A[A[12345]] 1 xx
    41     add 0 A[0] 1
    42     label xx
    43     add 12345 A[12345] 10000120
    44 if A[12345] 0 ggggg
    45 if 0 0 bbbbegin
    46 label ggggg
    47 
    48 output A[0]
    View Code

     $test7:$读入$n$,读入$n$个数,求和输出。不取模答案不超过$10000000$

    有谁能想到这个鬼东西跟$BSGS$有关?

    不让咱们做加法,那就做乘法啊。模数的原根是$3$所以我们可以算出$3^{a_1 + a_2 +...+a_n}$

    算出来之后我们只需要知道它是原根的几次幂就好了。这是经典的$BSGS$问题。

    因为乘法和快速幂都可以自由操作,所以其实就是一个很普通的$BSGS$

    然而出题人更好的地方在于,$10000121-1=520 imes 19231$

    需要灵活地使用数组安排内存。因为所有的数都在一个数组里所以撞上就坏事了。

    然后等$BSGS$撞上之后有一个减法。然而并不是什么大事,用个循环直接减就是了。

     1 input 0
     2 add 2 1 0
     3 label bg
     4     input 1
     5     pow 1 3 A[1]
     6     mul 2 A[2] A[1]
     7     add 0 A[0] 10000120
     8 if A[0] 0 g
     9 if 0 0 bg
    10 label g
    11 
    12 add 0 A[2] 0
    13 add 1 0 0
    14 
    15 pow 2 3 19231
    16 add 4 A[2] 0
    17 add 5 0 19231
    18 label begin
    19     add A[4] A[5] 0
    20     add 5 A[5] 19231
    21     mul 4 A[4] A[2]
    22 if A[4] 1 gg
    23 if 0 0 begin
    24 label gg
    25 
    26 add 4 0 0
    27 add 5 0 0
    28 if A[A[0]] 0 start
    29 if 0 0 ggg
    30 label start
    31     add 4 A[4] 1
    32     mul 0 A[0] 3
    33 if A[A[0]] 0 start
    34 label ggg
    35 
    36 label qqq
    37     add 4 A[4] 10000120
    38     add A[0] A[A[0]] 10000120
    39 if A[4] 0 end
    40 if 0 0 qqq
    41 label end
    42 
    43 output A[A[0]]
    View Code

     $test8:$读入$a,b$求$gcd(a,b)$

    大码力题。真难写。单单$label$就用了$30$多个,变量名都不知道用啥了。

    辗转相除肯定不行了,又是除又是模的。用冷门一些的$stein$算法:不断去除因子$2$,然后大减小。

    问题在于比较大小以及减法。

    比较大小的话问题不大,直接转化成二进制然后比就可以了。

    减法乍一下好像没法做,然而实际上我们又束缚住自己了:谁说不能是模意义下的减法了?

    所以减去一个数等于加上一个数的相反数。所以码就是了。

    真难写难调。让你瞬间感受到$C++$的魅力。

      1 input 0
      2 input 1
      3 add 2 0 1
      4 
      5 label f
      6     pow 4 10000120 A[0]
      7     pow 5 10000120 A[1]
      8 if A[4] 10000120 out
      9 if A[5] 10000120 out
     10     mul 2 A[2] 2
     11     mul 0 A[0] 5000061
     12     mul 1 A[1] 5000061
     13 if 0 0 f
     14 label out
     15 
     16 label g
     17     pow 4 10000120 A[0]
     18 if A[4] 10000120 h
     19     mul 0 A[0] 5000061
     20 if 0 0 g
     21 label h
     22 
     23 
     24 label x
     25     
     26     label i
     27         pow 5 10000120 A[1]
     28     if A[5] 10000120 j
     29         mul 1 A[1] 5000061
     30     if 0 0 i
     31     label j
     32     
     33     add 10000 A[0] 0
     34     add 11000 A[1] 0
     35     add 1000 1000 0
     36     add 1100 1100 0
     37     
     38     label k
     39         pow 233 10000120 A[10000]
     40         add 1000 A[1000] 1
     41         add A[1000] 0 0
     42         if A[233] 1 u
     43             add A[1000] 0 1
     44             add 10000 A[10000] 10000120
     45         label u
     46         mul 10000 A[10000] 5000061
     47     if A[10000] 0 l
     48     if 0 0 k
     49     label l
     50     
     51     label m
     52         pow 233 10000120 A[11000]
     53         add 1100 A[1100] 1
     54         add A[1100] 0 0
     55         if A[233] 1 v
     56             add A[1100] 0 1
     57             add 11000 A[11000] 10000120
     58         label v
     59         mul 11000 A[11000] 5000061
     60     if A[11000] 0 n
     61     if 0 0 m
     62     label n
     63     
     64     add 9260817 A[1000] 9999121
     65     add 9260818 A[1100] 9999021
     66     
     67     label o
     68         add 9260817 A[9260817] 1
     69         add 9260818 A[9260818] 10000120
     70     if A[9260818] 0 p
     71     if 0 0 o
     72     label p
     73     
     74     add 9260817 A[9260817] 1000
     75     add 9260818 A[9260817] 100
     76     
     77     label q
     78         
     79         if A[A[9260817]] A[A[9260818]] s
     80             if A[A[9260817]] 1 bigger
     81             if 0 0 smaller
     82         label s
     83         add A[9260817] 0 0
     84         add A[9260818] 0 0
     85         add 9260817 A[9260817] 10000120
     86         add 9260818 A[9260818] 10000120
     87         
     88     if A[9260817] 1000 smaller
     89     if 0 0 q
     90     
     91     label bigger
     92         add 99999 A[0] 0
     93         add 0 A[1] 0
     94         add 1 A[99999] 0 
     95         
     96     label smaller
     97     
     98     if A[9260817] 1000 hh
     99     label qq
    100         
    101         add A[9260817] 0 0
    102         add A[9260818] 0 0
    103         add 9260817 A[9260817] 10000120
    104         add 9260818 A[9260818] 10000120
    105         
    106     if A[9260817] 1000 hh
    107     if 0 0 qq
    108     label hh
    109     
    110     mul 0 A[0] 10000120
    111     
    112     add 10000 A[0] 0
    113     add 11000 A[1] 0
    114     add 1000 1000 0
    115     add 1100 1100 0
    116 
    117     label t
    118         pow 233 10000120 A[10000]
    119         add 1000 A[1000] 1
    120         add A[1000] 0 0
    121         if A[233] 1 w
    122             add A[1000] 0 1
    123             add 10000 A[10000] 10000120
    124         label w
    125         mul 10000 A[10000] 5000061
    126     if A[10000] 0 z
    127     if 0 0 t
    128     label z
    129     
    130     label a
    131         pow 233 10000120 A[11000]
    132         add 1100 A[1100] 1
    133         add A[1100] 0 0
    134         if A[233] 1 c
    135             add A[1100] 0 1
    136             add 11000 A[11000] 10000120
    137         label c
    138         mul 11000 A[11000] 5000061
    139     if A[11000] 0 b
    140     if 0 0 a
    141     label b
    142     
    143     add 9260817 A[1000] 9999121
    144     add 9260818 A[1100] 9999021
    145     label d
    146         add 9260817 A[9260817] 1
    147         add 9260818 A[9260818] 10000120
    148     if A[9260818] 0 e
    149     if 0 0 d
    150     label e
    151     
    152     add 9260817 A[9260817] 1000
    153     add 9260818 A[9260817] 100
    154     add 9260819 A[9260817] 0
    155     
    156     label aa
    157         
    158         if A[A[9260818]] 0 cc
    159             add A[9260817] A[A[9260817]] 1
    160         label cc
    161         add A[9260818] 0 0
    162         add 9260817 A[9260817] 10000120
    163         add 9260818 A[9260818] 10000120
    164         
    165     if A[9260817] 1000 bb
    166     if 0 0 aa
    167     label bb
    168     
    169     add 1 0 0
    170     
    171     label dd
    172         
    173         mul 1 A[1] 2
    174         if A[A[9260819]] 0 ff
    175             add 1 A[1] 1
    176             if A[A[9260819]] 1 ff 
    177             add 1 A[1] 1
    178         label ff
    179         add A[9260819] 0 0
    180         add 9260819 A[9260819] 10000120
    181         
    182     if A[9260819] 1000 ee
    183     if 0 0 dd
    184     label ee
    185     
    186     mul 0 A[0] 10000120
    187     
    188     add 222222 A[222222] 1
    189 
    190 if A[1] 0 final
    191 if 0 0 x
    192 label final
    193 mul 2 A[2] A[0]
    194 output A[2]
    View Code

     $test9:$读入$n$,是质数输出$1$否则输出$0$。数巨范围$2000$

    数据范围那么小,显然可以打表啊。

    因为$spj$爆炸了所以直接交表可以过。但是还是可以优化的:

    打出表之后建二进制$trie$压一下,每次在trie上走就行。能压掉一半。当然没有写。

      1 input 0
      2 if A[0] 2 prime
      3 if A[0] 3 prime
      4 if A[0] 5 prime
      5 if A[0] 7 prime
      6 if A[0] 11 prime
      7 if A[0] 13 prime
      8 if A[0] 17 prime
      9 if A[0] 19 prime
     10 if A[0] 23 prime
     11 if A[0] 29 prime
     12 if A[0] 31 prime
     13 if A[0] 37 prime
     14 if A[0] 41 prime
     15 if A[0] 43 prime
     16 if A[0] 47 prime
     17 if A[0] 53 prime
     18 if A[0] 59 prime
     19 if A[0] 61 prime
     20 if A[0] 67 prime
     21 if A[0] 71 prime
     22 if A[0] 73 prime
     23 if A[0] 79 prime
     24 if A[0] 83 prime
     25 if A[0] 89 prime
     26 if A[0] 97 prime
     27 if A[0] 101 prime
     28 if A[0] 103 prime
     29 if A[0] 107 prime
     30 if A[0] 109 prime
     31 if A[0] 113 prime
     32 if A[0] 127 prime
     33 if A[0] 131 prime
     34 if A[0] 137 prime
     35 if A[0] 139 prime
     36 if A[0] 149 prime
     37 if A[0] 151 prime
     38 if A[0] 157 prime
     39 if A[0] 163 prime
     40 if A[0] 167 prime
     41 if A[0] 173 prime
     42 if A[0] 179 prime
     43 if A[0] 181 prime
     44 if A[0] 191 prime
     45 if A[0] 193 prime
     46 if A[0] 197 prime
     47 if A[0] 199 prime
     48 if A[0] 211 prime
     49 if A[0] 223 prime
     50 if A[0] 227 prime
     51 if A[0] 229 prime
     52 if A[0] 233 prime
     53 if A[0] 239 prime
     54 if A[0] 241 prime
     55 if A[0] 251 prime
     56 if A[0] 257 prime
     57 if A[0] 263 prime
     58 if A[0] 269 prime
     59 if A[0] 271 prime
     60 if A[0] 277 prime
     61 if A[0] 281 prime
     62 if A[0] 283 prime
     63 if A[0] 293 prime
     64 if A[0] 307 prime
     65 if A[0] 311 prime
     66 if A[0] 313 prime
     67 if A[0] 317 prime
     68 if A[0] 331 prime
     69 if A[0] 337 prime
     70 if A[0] 347 prime
     71 if A[0] 349 prime
     72 if A[0] 353 prime
     73 if A[0] 359 prime
     74 if A[0] 367 prime
     75 if A[0] 373 prime
     76 if A[0] 379 prime
     77 if A[0] 383 prime
     78 if A[0] 389 prime
     79 if A[0] 397 prime
     80 if A[0] 401 prime
     81 if A[0] 409 prime
     82 if A[0] 419 prime
     83 if A[0] 421 prime
     84 if A[0] 431 prime
     85 if A[0] 433 prime
     86 if A[0] 439 prime
     87 if A[0] 443 prime
     88 if A[0] 449 prime
     89 if A[0] 457 prime
     90 if A[0] 461 prime
     91 if A[0] 463 prime
     92 if A[0] 467 prime
     93 if A[0] 479 prime
     94 if A[0] 487 prime
     95 if A[0] 491 prime
     96 if A[0] 499 prime
     97 if A[0] 503 prime
     98 if A[0] 509 prime
     99 if A[0] 521 prime
    100 if A[0] 523 prime
    101 if A[0] 541 prime
    102 if A[0] 547 prime
    103 if A[0] 557 prime
    104 if A[0] 563 prime
    105 if A[0] 569 prime
    106 if A[0] 571 prime
    107 if A[0] 577 prime
    108 if A[0] 587 prime
    109 if A[0] 593 prime
    110 if A[0] 599 prime
    111 if A[0] 601 prime
    112 if A[0] 607 prime
    113 if A[0] 613 prime
    114 if A[0] 617 prime
    115 if A[0] 619 prime
    116 if A[0] 631 prime
    117 if A[0] 641 prime
    118 if A[0] 643 prime
    119 if A[0] 647 prime
    120 if A[0] 653 prime
    121 if A[0] 659 prime
    122 if A[0] 661 prime
    123 if A[0] 673 prime
    124 if A[0] 677 prime
    125 if A[0] 683 prime
    126 if A[0] 691 prime
    127 if A[0] 701 prime
    128 if A[0] 709 prime
    129 if A[0] 719 prime
    130 if A[0] 727 prime
    131 if A[0] 733 prime
    132 if A[0] 739 prime
    133 if A[0] 743 prime
    134 if A[0] 751 prime
    135 if A[0] 757 prime
    136 if A[0] 761 prime
    137 if A[0] 769 prime
    138 if A[0] 773 prime
    139 if A[0] 787 prime
    140 if A[0] 797 prime
    141 if A[0] 809 prime
    142 if A[0] 811 prime
    143 if A[0] 821 prime
    144 if A[0] 823 prime
    145 if A[0] 827 prime
    146 if A[0] 829 prime
    147 if A[0] 839 prime
    148 if A[0] 853 prime
    149 if A[0] 857 prime
    150 if A[0] 859 prime
    151 if A[0] 863 prime
    152 if A[0] 877 prime
    153 if A[0] 881 prime
    154 if A[0] 883 prime
    155 if A[0] 887 prime
    156 if A[0] 907 prime
    157 if A[0] 911 prime
    158 if A[0] 919 prime
    159 if A[0] 929 prime
    160 if A[0] 937 prime
    161 if A[0] 941 prime
    162 if A[0] 947 prime
    163 if A[0] 953 prime
    164 if A[0] 967 prime
    165 if A[0] 971 prime
    166 if A[0] 977 prime
    167 if A[0] 983 prime
    168 if A[0] 991 prime
    169 if A[0] 997 prime
    170 if A[0] 1009 prime
    171 if A[0] 1013 prime
    172 if A[0] 1019 prime
    173 if A[0] 1021 prime
    174 if A[0] 1031 prime
    175 if A[0] 1033 prime
    176 if A[0] 1039 prime
    177 if A[0] 1049 prime
    178 if A[0] 1051 prime
    179 if A[0] 1061 prime
    180 if A[0] 1063 prime
    181 if A[0] 1069 prime
    182 if A[0] 1087 prime
    183 if A[0] 1091 prime
    184 if A[0] 1093 prime
    185 if A[0] 1097 prime
    186 if A[0] 1103 prime
    187 if A[0] 1109 prime
    188 if A[0] 1117 prime
    189 if A[0] 1123 prime
    190 if A[0] 1129 prime
    191 if A[0] 1151 prime
    192 if A[0] 1153 prime
    193 if A[0] 1163 prime
    194 if A[0] 1171 prime
    195 if A[0] 1181 prime
    196 if A[0] 1187 prime
    197 if A[0] 1193 prime
    198 if A[0] 1201 prime
    199 if A[0] 1213 prime
    200 if A[0] 1217 prime
    201 if A[0] 1223 prime
    202 if A[0] 1229 prime
    203 if A[0] 1231 prime
    204 if A[0] 1237 prime
    205 if A[0] 1249 prime
    206 if A[0] 1259 prime
    207 if A[0] 1277 prime
    208 if A[0] 1279 prime
    209 if A[0] 1283 prime
    210 if A[0] 1289 prime
    211 if A[0] 1291 prime
    212 if A[0] 1297 prime
    213 if A[0] 1301 prime
    214 if A[0] 1303 prime
    215 if A[0] 1307 prime
    216 if A[0] 1319 prime
    217 if A[0] 1321 prime
    218 if A[0] 1327 prime
    219 if A[0] 1361 prime
    220 if A[0] 1367 prime
    221 if A[0] 1373 prime
    222 if A[0] 1381 prime
    223 if A[0] 1399 prime
    224 if A[0] 1409 prime
    225 if A[0] 1423 prime
    226 if A[0] 1427 prime
    227 if A[0] 1429 prime
    228 if A[0] 1433 prime
    229 if A[0] 1439 prime
    230 if A[0] 1447 prime
    231 if A[0] 1451 prime
    232 if A[0] 1453 prime
    233 if A[0] 1459 prime
    234 if A[0] 1471 prime
    235 if A[0] 1481 prime
    236 if A[0] 1483 prime
    237 if A[0] 1487 prime
    238 if A[0] 1489 prime
    239 if A[0] 1493 prime
    240 if A[0] 1499 prime
    241 if A[0] 1511 prime
    242 if A[0] 1523 prime
    243 if A[0] 1531 prime
    244 if A[0] 1543 prime
    245 if A[0] 1549 prime
    246 if A[0] 1553 prime
    247 if A[0] 1559 prime
    248 if A[0] 1567 prime
    249 if A[0] 1571 prime
    250 if A[0] 1579 prime
    251 if A[0] 1583 prime
    252 if A[0] 1597 prime
    253 if A[0] 1601 prime
    254 if A[0] 1607 prime
    255 if A[0] 1609 prime
    256 if A[0] 1613 prime
    257 if A[0] 1619 prime
    258 if A[0] 1621 prime
    259 if A[0] 1627 prime
    260 if A[0] 1637 prime
    261 if A[0] 1657 prime
    262 if A[0] 1663 prime
    263 if A[0] 1667 prime
    264 if A[0] 1669 prime
    265 if A[0] 1693 prime
    266 if A[0] 1697 prime
    267 if A[0] 1699 prime
    268 if A[0] 1709 prime
    269 if A[0] 1721 prime
    270 if A[0] 1723 prime
    271 if A[0] 1733 prime
    272 if A[0] 1741 prime
    273 if A[0] 1747 prime
    274 if A[0] 1753 prime
    275 if A[0] 1759 prime
    276 if A[0] 1777 prime
    277 if A[0] 1783 prime
    278 if A[0] 1787 prime
    279 if A[0] 1789 prime
    280 if A[0] 1801 prime
    281 if A[0] 1811 prime
    282 if A[0] 1823 prime
    283 if A[0] 1831 prime
    284 if A[0] 1847 prime
    285 if A[0] 1861 prime
    286 if A[0] 1867 prime
    287 if A[0] 1871 prime
    288 if A[0] 1873 prime
    289 if A[0] 1877 prime
    290 if A[0] 1879 prime
    291 if A[0] 1889 prime
    292 if A[0] 1901 prime
    293 if A[0] 1907 prime
    294 if A[0] 1913 prime
    295 if A[0] 1931 prime
    296 if A[0] 1933 prime
    297 if A[0] 1949 prime
    298 if A[0] 1951 prime
    299 if A[0] 1973 prime
    300 if A[0] 1979 prime
    301 if A[0] 1987 prime
    302 if A[0] 1993 prime
    303 if A[0] 1997 prime
    304 if A[0] 1999 prime
    305 output 0
    306 if 0 0 notprime
    307 label prime
    308 output 1
    309 label notprime
    View Code

     $test10:$写一个代码,其中至少有一个阿拉伯数字,输出你代码里出现的每个数字$+1$。

    首先每次$output$就一定有一个阿拉伯数字了,为了让最后输出个数与阿拉伯数字数相同,肯定是有循环结构出现了。

    如果代码里出现的数字有很多种,肯定不方便,我们让所有出现的数字都是$1$

    然后我们就可以$add 1 1 1$使得$A[1]=2$。我们就可以通过一种阿拉伯数字$1$调用两种变量了。

    然有了数字$2$我们也就可以实现循环了。然后只要在代码里添加若干$output 1$让数量相同就可以了。

     1 add 1 1 1
     2 label begin
     3 output A[1]
     4 output A[1]
     5 output A[1]
     6 output A[1]
     7 output A[1]
     8 output A[1]
     9 output A[1]
    10 output A[1]
    11 output A[1]
    12 output A[1]
    13 if A[A[1]] A[1] gg
    14 add A[1] 1 1
    15 if 1 1 begin
    16 label gg
    View Code

     有意思。博客新背景候选:

  • 相关阅读:
    Win10企业版远程桌面结合frp实现公网远程
    ibatis入门教程
    没找到工作的Java软件工程师是屌丝中的屌丝啊
    消息队列常见问题和解决方案(转)
    Mycat安装部署简单使用
    MySQL以及MyCat的安装和使用
    MyCat用户配置-添加用户、修改用户、删除用户、重置用户密码
    mycat的下载和安装
    CentOS基础命令大全 (转)
    唯一ID生成器。
  • 原文地址:https://www.cnblogs.com/hzoi-DeepinC/p/12416132.html
Copyright © 2011-2022 走看看