就是模拟。同一个开关按2下相当于没按,那么,如果一共按0下,就是没按,按1下就是4个开关的1个,按2下可能相当于实际按了0下或按2下,按3下实际按了1下或3下,之后如果是奇数,相当于按1或3下,偶数相当于按0,2,4下。再看一下是否符合。数据太小根本不会超时。

#include <iostream>
#include <cstdio>
#include <cmath>
#include <algorithm>
#include <vector>
#include <iomanip>
#include <cstring>
#include <map>
#include <queue>
#include <set>
#include <cassert>
#include <stack>
#include <bitset>
#define mkp make_pair
using namespace std;
const double EPS=1e-8;
typedef long long lon;
const lon SZ=30,INF=0x7FFFFFFF;int getdgt(int x)
{int res=0;for(;x;){if(x&1)++res;x/=2;}return res;
}void func(int x,bitset<1010> &y)
{if(x&1)y.flip();if(x&2){for(int i=1;i<=1000;i+=2)y[i]=!y[i];}if(x&4){for(int i=2;i<=1000;i+=2)y[i]=!y[i];}if(x&8){for(int i=1;i<=1000;i+=3)y[i]=!y[i];}
}bool chk(bitset<1010> bt,vector<int> &x,int sta)
{for(int i=0;i<x.size();++i){if(bt[x[i]]!=sta)return 0;}return 1;
}void work(int n,set<int> time,vector<int> lg,vector<int> dk)
{bool ok=0;vector<string> vct; for(int i=0;i<(1<<4);++i){if(time.find(getdgt(i))!=time.end()){bitset<1010> bt;bt.set();func(i,bt);if(chk(bt,lg,1)&&chk(bt,dk,0)){ok=1;string tmp="";for(int j=1;j<=n;++j){tmp+=bt[j]+'0';}vct.push_back(tmp);}}}sort(vct.begin(),vct.end());if(ok==0)cout<<"IMPOSSIBLE"<<endl;else{for(int i=0;i<vct.size();++i){cout<<vct[i]<<endl;}}
}int main()
{std::ios::sync_with_stdio(0);//freopen("d:\\1.txt","r",stdin);
    lon casenum;//cin>>casenum;//for(lon time=1;time<=casenum;++time)
    {int n,cnt;cin>>n>>cnt;vector<int> lg,dk;for(;;){int tmp;cin>>tmp;if(tmp==-1)break;else lg.push_back(tmp);}for(;;){int tmp;cin>>tmp;if(tmp==-1)break;else dk.push_back(tmp);}//sort(lg.begin(),lg.end());//sort(dk.begin(),dk.end());set<int> st;if(cnt==0){st.insert(0);work(n,st,lg,dk);}else if(cnt==1){st.insert(1);work(n,st,lg,dk);}else if(cnt==2){st.insert(0);st.insert(2);work(n,st,lg,dk);}else if(cnt&1){st.insert(1);st.insert(3);work(n,st,lg,dk);}else{st.insert(0);st.insert(2);st.insert(4);work(n,st,lg,dk);}}return 0;
}

转载于:https://www.cnblogs.com/gaudar/p/9824144.html

p1468 Party Lamps相关推荐

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

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

  2. usaco party lamps

    不说什么了这题真的解不出来.看了题解,规律一层套一层,题目越来越难了加油吧. /* ID:jinbo wu PROG:lamps LANG:C++ */ #include<bits/stdc++ ...

  3. USACO-Section2.2 Party Lamps

    2017-9-2 题目描述 给出部分灯最后的状态以及按的次数,求出可能的结果 解答 注意题意的理解,我对最后的结果进行了排序 代码 /* ID: 18795871 PROG: lamps LANG: ...

  4. Party Lamps chapter 2.2

    又是来回2次等于没按,一个结构体 no3odd,speodd,no3even,speeven代表非-1%3 奇数偶数,普通奇数偶数. 然后当按1-4次时,归纳出1次对应4种情况,2次对应0次和2种各一 ...

  5. ACM-ICPC 2018 南京赛区网络预赛 Lpl and Energy-saving Lamps 线段树

    目录 ACM-ICPC 2018 南京赛区网络预赛 Lpl and Energy-saving Lamps 线段树 题面 题意 思路 ACM-ICPC 2018 南京赛区网络预赛 Lpl and En ...

  6. Lpl and Energy-saving Lamps 计蒜客多校

    题意:给你n个房间,每个房间给你一个灯泡数,再给你每天可以增加的新灯泡数m,你每次都要从左到右全都更新一遍,更新方法是:如果手中的灯泡个数大于等于房间的灯泡个数就更新这个房间,然后继续向下,否则就跳过 ...

  7. POI2014 Solar lamps

    Solar lamps POI2014 题意 1.有n个灯,他们只会朝一个确定的夹角发光 2.每个灯被放在一个固定的地方,并且朝向同一个方向(指如果发光会朝同一个方向) 3.第i盏灯如果被至少K[i] ...

  8. 2018南京网络赛 G. Lpl and Energy-saving Lamps (线段树非递归实现)

    线段树非递归实现.点修改下的区间查询. 注意预处理的时候要把一到十万的都进行处理一遍,因为输入的月份不一定在月份的个数之内. #include <iostream> #include &l ...

  9. CodeForces - 1368F Lamps on a Circle(交互+贪心)

    题目链接:点击查看 题目大意:给出一个环状的灯泡,标号为 1 ~ n ,初始时全部为熄灭状态,现在两个人开始玩游戏,第一个人可以选择继续游戏,也可以选择结束游戏,继续游戏的话首先选择一个正整数 k , ...

最新文章

  1. PostgreSQL的initdb 源代码分析之五
  2. BugkuCTF-Misc:come_game
  3. 记录一次Oracle注入绕waf
  4. ImagesLazyLoad 图片延迟加载效果
  5. oracle事务默认自动提交吗_干货|事务
  6. c++ 状态模式(state)
  7. 总结新浪friendship接口
  8. jpegNPP编译为so
  9. 点击邮箱名跳转到相对应的邮箱登陆页面
  10. UL -758_2022电器布线电线电缆安全标准,刚刚发行最新版
  11. php在线中文转英文,thinkphp页面的多语言切换,中文、英文之间的转换
  12. 十年程序人生——黎活明给程序员的忠告
  13. 百度OCR图片内容识别
  14. linux 查找py文件命令_Linux文件查找
  15. 固定定位(fixed)和粘性定位(sticky)的比较
  16. 易车的第三个十年不好走
  17. 京沪高铁,终于给了日本。。
  18. 设置CPU频率和CPU运行核心数
  19. 【转】PCL室内三维重建
  20. 错误 '800a03ea'

热门文章

  1. Linux下同型号USB相机端口绑定
  2. 西门子P L C 1200与smart的S 7通讯
  3. [思语]_一花一世界,一树一菩提
  4. jieba中文分词组件
  5. Latex 伪代码、三线表与多线表
  6. 作业1 OO基础1-3、 设计一个教师类Teacher(属于cn.net.sdkd包)
  7. 【转载】Microsoft 365 E5邮件API调用自动订阅无限续订服务
  8. 灰度差分统计法计算图像的对比度
  9. 很合理,但是有病的奇怪网站合集
  10. iOS 仿钉钉文字水印