北京大兴专业网站建设公司,wordpress 加速乐,网站开发 手机 电脑,学院网站改造方案进来突然意识到算法的重要性#xff0c;可惜已经没有充足的时间去进行专业的训练了#xff0c;只能慢慢挤时间做几个题练习一下聊以安慰#xff0c;希望能多坚持几天吧#xff0c;奉劝各位想学算法的同学一定要趁早啊。 poj1222 解析见郭炜老师的程序设计与算法#xff…进来突然意识到算法的重要性可惜已经没有充足的时间去进行专业的训练了只能慢慢挤时间做几个题练习一下聊以安慰希望能多坚持几天吧奉劝各位想学算法的同学一定要趁早啊。 poj1222 解析见郭炜老师的程序设计与算法二算法基础 熄灯问题 代码如下
#include iostream
#includestdio.h
#includecstring
using namespace std;
char oriLights[5];
char Light[5];
char result[5];
int GetBit(char c ,int i)
{return (ci)1;
}
void SetBit(char c,int i,int v)
{if(v){c |(1i);}elsec ~(1i);
}void FlipBit(char c ,int i)
{c^(1i);
}void OutputResult(int t,char result[])
{coutPUZZLE #tendl;for(int i0;i5;i){for(int j0;j6;j){coutGetBit(result[i],j);if(j5)cout ;}coutendl;}
}int main()
{int T;cinT;for(int t0;tT;t){for(int i0;i5;i)for(int j0;j6;j){int s;cins;SetBit(oriLights[i],j,s);}for(int n0;n64;n){int switchs n;memcpy(Light,oriLights,sizeof(oriLights));for(int i 0;i5;i){result[i] switchs;for(int j0;j6;j){if(GetBit(switchs,j)){if(j0)FlipBit(Light[i],j-1);FlipBit(Light[i],j);if(j5)FlipBit(Light[i],j1);}}if(i4)Light[i1] ^switchs;switchs Light[i];}if(Light[4] 0){OutputResult(t,result);break;}}}return 0;
}主要思想为枚举思想灵活的运用了位运算可以说非常精炼希望日后我的算法能力也能到如此水平 Fighting ^-^