2017-6-8

题目描述

给你n盏开着的灯,开关的次数,以及部分灯最后的状态,求出所有可能的情况

解答

史上最长的代码
同一个按钮按奇数次都是一样的,按偶数次也都是一样的

代码

#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;const int N = 100;
char x[N+1];
int f[N+1];
int a[4];
int n,c;
char y[N+1][N+1];
int k=0;void init(){int m;cin>>m;while (m!=-1){f[m]=1;cin>>m;}cin>>m;while (m!=-1){f[m]=-1;cin>>m;}
}int cal(){int sum=0;for (int i=0;i<4;i++){if (a[i]==1) sum++;}return sum;
}void re(){if (a[0]==1){for (int i=1;i<=n;i++){x[i]=(x[i]-'0'+1)%2+'0';}}if (a[1]==1){for (int i=1;i<=n;i++){if (i%2==1) x[i]=(x[i]-'0'+1)%2+'0';}}if (a[2]==1){for (int i=1;i<=n;i++){if (i%2==0) x[i]=(x[i]-'0'+1)%2+'0';}}if (a[3]==1){for (int i=1;i<=n;i++){if (i%3==1) x[i]=(x[i]-'0'+1)%2+'0';}}
}bool tru(){for (int i=1;i<=n;i++){if (f[i]==1){if (x[i]!='1') return false;}else if (f[i]==-1){if (x[i]!='0') return false;}}return true;
}void set(){for(int i=1;i<=n;i++) x[i]='1';
}void res(){for (a[0]=0;a[0]<=1;a[0]++){for (a[1]=0;a[1]<=1;a[1]++){for (a[2]=0;a[2]<=1;a[2]++){for (a[3]=0;a[3]<=1;a[3]++){set();if (c==0){if (cal()==0){if (tru()){for (int i=0;i<n;i++) y[k][i]=x[i+1];k++;}}}else if (c==1){if (cal()==1){re();if (tru()){for (int i=0;i<n;i++) y[k][i]=x[i+1];k++;}}}else if (c==2){if (cal()==0){if (tru()){for (int i=0;i<n;i++) y[k][i]=x[i+1];k++;}}else if (cal()==2){re();if (tru()){for (int i=0;i<n;i++) y[k][i]=x[i+1];k++;}}}else{if (c%2==0){if (cal()==0){if (tru()){for (int i=0;i<n;i++) y[k][i]=x[i+1];k++;}}else if (cal()==2){re();if (tru()){for (int i=0;i<n;i++) y[k][i]=x[i+1];k++;}}else if (cal()==4){re();if (tru()){for (int i=0;i<n;i++) y[k][i]=x[i+1];k++;}}}else{if (cal()==1){re();if (tru()){for (int i=0;i<n;i++) y[k][i]=x[i+1];k++;}}else if (cal()==3){re();if (tru()){for (int i=0;i<n;i++) y[k][i]=x[i+1];k++;}}}}}}}}
}
void out(){if (k==0) cout<<"IMPOSSIBLE"<<endl;int i,j;for (i=0;i<k;i++) y[i][n]='\0';for (i=0;i<k;i++){}char t[N+1];for (i=0;i<k-1;i++){for (j=0;j<k-i-1;j++){if (strcmp(y[j],y[j+1])>0){strcpy(t,y[j]);strcpy(y[j],y[j+1]);strcpy(y[j+1],t);}}}for (i=0;i<k;i++){cout<<y[i]<<endl;}
}int main(){cin>>n>>c;init();res();out();
}

CODEVS-2050 派对灯相关推荐

  1. ios numlock_从“提示”框:默认情况下启用NumLock,无广告的iOS应用和立体声供电的派对灯...

    ios numlock Once a week we round up some of the great tips readers have sent into the tip box. This ...

  2. POJ 1176 Party Lamps USACO 2.2 派对灯(搜索)

    题目地址 http://poj.org/problem?id=1176 题目描述 在IOI98的节日宴会上,我们有N(10<=N<=100)盏彩色灯,他们分别从1到N被标上号码. 这些灯都 ...

  3. P1468 派对灯 Party Lamps(BIG 模拟)

    题目描述 在IOI98的节日宴会上,我们有N(10<=N<=100)盏彩色灯,他们分别从1到N被标上号码. 这些灯都连接到四个按钮: 按钮1:当按下此按钮,将改变所有的灯:本来亮着的灯就熄 ...

  4. USACO2.2【统计,dp,模拟,位运算】

    正题 T1:序言页码 PrefaceNumberingPreface NumberingPrefaceNumbering 评测记录:https://www.luogu.org/recordnew/li ...

  5. django girls_Django Girls Budapest团队的活动筹划技巧

    django girls 我和SzilviKádár , DaniellaKőrössy以及Django Girls Budapest的组织者,这是一个免费的讲习班,教妇女如何编码. 我们在2014年 ...

  6. 湖南省第十届蓝狐网络杯大学生计算机程序设计竞赛,2019年湖南省大学生计算机程序设计竞赛 (HNCPC2019) 简要题解...

    2019年湖南省大学生计算机程序设计竞赛 (HNCPC2019) 简要题解 update10.01 突然发现叉姐把这场的题传到牛客上了,现在大家可以有地方提交了呢. 不知道该干什么所以就来水一篇题解 ...

  7. 中国GDG Google I/O之行所见:带回国际创新风采,做中国开发者连接世界的桥梁

    文 / Google 开发技术推广部  中国谷歌开发者社区项目经理 夏雯 上周举办的全球技术盛会 Google I/O 2017 再次迎来了大批来自中国的参会者,中国开发者参会的人数再创历史新高,达到 ...

  8. 线段树--codevs 1690 开关灯

    codevs 1690 开关灯 USACO  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 钻石 Diamond 题目描述 Description YYX家门前的街上有N(2& ...

  9. 【2050 Programming Competition - 2050 一万人码 】非官方部分题解(HDU)

    1001 开场白 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total S ...

最新文章

  1. 吴恩达:无监督学习很重要!
  2. python第一堂课
  3. java通过按钮打开新窗口_如何在java程序中,当点击一个按钮后,关闭当前窗口,开启一个新的窗口。...
  4. 大端模式小端模式 主机序网络序
  5. laraval使用sqlite设置从多少开始递增
  6. ssd训练自己数据集
  7. html5晋级之路-css背景
  8. Node.js Path 模块
  9. 任务平均分配的小算法
  10. Y400中通过easybcd在win7下面的安装Ubuntu14
  11. 你知道 Google X 神秘实验室创始人的故事么?
  12. P+XS算法中Dirac comb的解释
  13. react+antd 权限管理 Tree树形控件
  14. 投资组合管理之投资组合概论
  15. luogu3933 Chtholly Nota Seniorious
  16. ISDA 国际掉期交易协会
  17. 钱币组合问题(动态规划)
  18. JavaScript之childNodes 和 children 区别
  19. oxidized配置(docker版)
  20. 看盘做短线的10种方法

热门文章

  1. 12v电流表的正确接法_滑动变阻器的分压与限流接法
  2. 别再吼孩子骂孩子了,他们的脑子真的会受伤变形
  3. macOS 新功能:【控制中心】让你的 Mac 系统更方便!
  4. Big Sur bug汇总与解决:macOS Big Sur更新后你遇到了哪些问题?
  5. mysql jquery tree_php mysql js实现树形菜单代码
  6. NOI数据结构:后缀树
  7. java内部类选择题_java内部类使用总结
  8. 计算机专业相关的毕业设计论文合集免费下载
  9. 【分享-快速仿站】无敌超强仿站小工具一键下载
  10. 前端笔记-StackedBar3D的初步修改(添加legend等)