说在前面:强烈谴责AK神Mr_zkt没有丝毫素质RP--
然而我也想没素质一次,但是我没机会AK一套除了B组题以外的题。。。
太菜了,没权力。人家AK了人家就是牛逼你没话说
达哥的题必须好好写反思。
达哥的题令我恐惧。
之前考的所有达哥的题都不是很难,甚至有AK的,只有我每逢达哥就爆炸。炸得特别惨。
所以今天看到考试标题lrd day1时我就绝望了。
但是这次的题的确还是比较简单,前两题56分钟足以解决。
然后T3被我伪证了,我以为最多每个点周围只有两个联通块。
然后打出来了,128分钟的时候,我觉得我AK了。
但是吸取我这次没有太飘,打对拍。
但是说是在的,效率很低。
然后10分钟拍上T1。
然后T2的暴力死活调不出来,调了45分钟左右才弄出来。
然而其实大样例不水(是最大的一档数据)其实不那么需要对拍。
然后T3的对拍打了一半,发现还有5分钟,就算拍出来了也来不及改了,就挂机了。
然而T3的下发数据很水导致我的伪证没有被hack,而对拍一会就出来了。
考试结束。
总算没有又一次在达哥手下死无全尸。
当有大样例时优先拍大样例比较水的题。
在三道题都打完之后仍然要保持较高的效率打对拍。
话说今天这么简单的话明天的题是不是要跪啊。。。
T1:位运算
大规模手动分类讨论。
1 #include<cstdio> 2 int pre[2][2][2]; 3 int main(){//freopen("ex_bit.in","r",stdin); 4 pre[0][0][0]=1; 5 pre[0][1][1]=2; 6 pre[1][1][0]=1; 7 int t,XOR,OR,AND;long long ans=1;scanf("%d",&t); 8 while(t--){ 9 scanf("%d%d%d",&AND,&OR,&XOR);ans=1; 10 if(AND!=-1&&OR==-1&&XOR==-1){puts("inf");} 11 if(AND==-1&&OR!=-1&&XOR==-1){for(int i=0;i<30;++i)if(OR&1<<i)ans*=3;printf("%lld\n",ans);} 12 if(AND==-1&&OR==-1&&XOR!=-1){puts("inf");} 13 if(AND!=-1&&OR!=-1&&XOR==-1){ 14 for(int i=0;i<30;++i)if((OR&1<<i)==0&&(AND&1<<i)!=0)ans*=0; 15 else if((OR&1<<i)!=0&&(AND&1<<i)==0)ans*=2; 16 printf("%lld\n",ans); 17 } 18 if(AND!=-1&&OR==-1&&XOR!=-1){ 19 for(int i=0;i<30;++i)if((XOR&1<<i)!=0&&(AND&1<<i)!=0)ans*=0; 20 else if((XOR&1<<i)!=0&&(AND&1<<i)==0)ans*=2; 21 printf("%lld\n",ans); 22 } 23 if(AND==-1&&OR!=-1&&XOR!=-1){ 24 for(int i=0;i<30;++i)if((XOR&1<<i)!=0&&(OR&1<<i)==0)ans*=0; 25 else if((XOR&1<<i)!=0&&(OR&1<<i)!=0)ans*=2; 26 printf("%lld\n",ans); 27 } 28 if(AND!=-1&&OR!=-1&&XOR!=-1){ 29 for(int i=0;i<30;++i)ans*=pre[(AND&1<<i)>0][(OR&1<<i)>0][(XOR&1<<i)>0]; 30 printf("%lld\n",ans); 31 } 32 } 33 }