博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【搜索】P1468 派对灯 Party Lamps
阅读量:7030 次
发布时间:2019-06-28

本文共 1523 字,大约阅读时间需要 5 分钟。

我们来分析一下对灯的操作

1.对所有灯的,这时吧所有灯看成一个整体

2.奇偶数的操作,这时可以把每两个数看成一个循环节

3.对3X+ 1的操作,这时可以把每三个数看成一个循环节

显而易见的,我们把序列看成6个一组的循环节,便能模拟整个序列。

用笔画一下,我们发现将这个含六个元素的序列进行变换最终只会有八种结果,那么我们只需要判断一下最后这八种结果

最后是否符合题意要求就行了(至于他是怎么变换的我们不用管)

以上就是在题解区找到的解释,其实说得很好,希望原作者  见谅。

 

1 #include
2 using namespace std; 3 const int N = 1e3+10; 4 int One[N],Zero[N],cnt1,cnt2; 5 int n,C; 6 int a[N][16]; 7 string S[100]; 8 char s[N]; 9 void Init(){10 for(int i=0;i
>n>>C;37 while( cin>>One[cnt1++] ){38 if(One[cnt1-1]==-1){39 cnt1--; break;40 }41 }42 while( cin>>Zero[cnt2++] ){43 if(Zero[cnt2-1]==-1){44 cnt2--; break;45 }46 }47 /*48 for(int i=0;i
>1) & 1 ){62 for(int j=1;j<=n;j+=2){63 a[j][i] = a[j][i] ^ 1 ;64 }65 }66 if( (i>>2) & 1 ){67 for(int j=2;j<=n;j+=2){68 a[j][i] = a[j][i] ^ 1 ;69 }70 }71 if( (i>>3) & 1 ){72 for(int j=1;j<=n;j+=3){73 a[j][i] = a[j][i] ^ 1 ;74 }75 }76 }77 int cnt = 0 ;78 79 for(int j=0;j<=15;j++){80 if( check(j) ) {81 for(int i = 1 ; i <= n; i++){82 s[i-1] = a[i][j] + '0';83 }84 s[n] = '\0';85 S[cnt++] = s;86 }87 }88 if( cnt == 0 ){89 cout<<"IMPOSSIBLE"<
View Code

 

转载于:https://www.cnblogs.com/Osea/p/10890461.html

你可能感兴趣的文章
Cisco ASA 应用NAT
查看>>
Css的transform和transition
查看>>
AtomicInteger和count++的比较
查看>>
JS删除数组条目中重复的条目
查看>>
为什么 执行typeof null时会返回字符串“object”?
查看>>
ASP.NET MVC+EF框架+EasyUI实现权限管理系列(20)-多条件模糊查询和回收站还原的实现...
查看>>
我心中的核心组件(可插拔的AOP)~第十二回 IoC组件Unity
查看>>
AutoCompleteTextView 与sqlite绑定实现记住用户输入的内容并自动提示
查看>>
TCP/IP-协议族----17、应用层简单
查看>>
ZOJ1093 动态规划
查看>>
Swift - 06 - 数值类型转换和类型别名
查看>>
原型模式与对象的拷贝
查看>>
CISCO 6509 日志分析
查看>>
AutoOps 1.8 版本
查看>>
烂泥:centos安装LVM方式
查看>>
写时拷贝(方案一)
查看>>
教程Micropython自制小型家庭气象站(萝卜教育)
查看>>
Redis源码分析系列26:对redis的一点小感触
查看>>
phpstudy 性能调优
查看>>
JDK源码解读(1)ArrayList和LinkedList
查看>>