摘要:
博弈论水题!!!代码如下: 1 #include 2 #include 3 using namespace std; 4 int main(){ 5 int i,t,n,k,m; 6 while(cin>>n){ 7 m=0;t=0; 8 for(i=0;i>k;10 if(k>=2) t++;11 m^=k;12 }13 if((m==0&&t>=2)||(m!=0&&t==0)) cout<<"No"<<endl;14 else cout<<"Ye... 阅读全文
摘要:
很简单的博弈论问题!!(注意全是1时是特殊情况)代码如下: 1 #include 2 #include 3 using namespace std; 4 int main(){ 5 int i,t,n,k,m; 6 bool flag; 7 scanf("%d",&t); 8 while(t--){ 9 scanf("%d",&n);10 flag=0;m=0;11 for(i=0;i>k;13 m^=k;14 if(k>1) flag=1;15 }1... 阅读全文
摘要:
纯数论题,不解释!!!!代码如下: 1 #include 2 int main(){ 3 int i,j,t,n,k=0,m; 4 scanf("%d",&t); 5 while(t--){ 6 scanf("%d",&n); 7 printf("Case #%d:\n",++k); 8 m=n*(n-1); 9 for(i=1;i<=n;i++){10 for(j=1;j<n;j++)11 printf("%d ",(i-1)*(n-1)+j);12... 阅读全文
摘要:
看懂题目,很容易想到容斥原理。刚开始我用的是二进制表示法实现容斥原理,但是一直超时。后来改为dfs就过了……代码如下: 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #define ll __int64 9 #define pi acos(-1.0)10 #define MAX 5000011 using namespace std;12 ll an[16],ans;13 int n;14 int get(ll n)15 {16 int t=0;17 while(n)... 阅读全文
摘要:
这题用到了卡特兰数,详情见:http://www.cnblogs.com/jackge/archive/2013/05/19/3086519.html解体思路详见:http://blog.csdn.net/lvlu911/article/details/5425974代码如下:#include#include#include#include#include#include#include#define ll __int64#define pi acos(-1.0)#define MAX 50000using namespace std;int an[19]={1,1,2,5,14,42,132 阅读全文
摘要:
例子:123以内0的个数:个位是0时:12*1;十位是0时:1*10;但是303的十位是0时的个数为2*10+4!代码如下: 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #define ll __int64 9 #define pi acos(-1.0)10 #define MAX 5000011 using namespace std;12 ll solve(ll n)13 {14 if(n>n>>m){32 if(n<0&&m<0) 阅读全文
摘要:
思路:首先要建立坐标,具体作法见:http://www.cnblogs.com/xin-hua/p/3237096.html然后将得到2坐标之差x,y;如果x,y同号,则相加,否则去最大.(要取绝对值的)代码如下: 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #define ll __int64 9 #define pi acos(-1.0)10 #define MAX 5000011 using namespace std;12 struct dir13 {14 int ... 阅读全文