- 博客(16)
- 资源 (21)
- 收藏
- 关注
原创 hdu 1166 敌兵布阵(线段树)
/hdu 1166 敌兵布阵(线段数) #include #include #include using namespace std; const int N=200010; int dd=1; struct node { int l; int r; int value; }tree[N]; int a[N]; void build(int v,int l,int r)//
2014-06-30 21:37:29 313
原创 hdu 1232畅路工程(并查集)
/*hdu 1232畅路工程(并查集) */ #include #include using namespace std; const int N=1004; int father[N]; void Makeset(int n) { for(int i=0;i { father[i]=i; } } int Findset(int
2014-06-30 19:39:45 422
原创 hdu 1272 小希迷宫 (并查集)
/*hdu 1272 (并查集) 注意点的检查(由于这个原因交了很多次) */ #include #include #include using namespace std; const int N=100004; int father[N];//并查集存储 void Make_set() { for(int i=0;i<N;i++) { father[i]
2014-06-30 17:51:39 331
原创 hdu 1573 (中国乘余定理)
/* 1、a1,a2,a3,a4,….,ak不一定互质,所以不能够直接用中国剩余定理。 2、x=b1+a1*k1,x=b2+a2*k2,所以有1b+a1*k1=b2+a2*k2 => a1*k1=(r2-r1) mod(a2); 用扩展欧几里得可以得到最小的k1,所以x=b1+a1*k1+a1*a2/gcd(a1,a2), 就这样一直替换最后剩余一个同余方程。b1就是最后的解。 3、对于x=a
2014-06-30 15:03:56 506
原创 hdu 1848 (博弈)
/*hdu 1848 要用到SG函数, 必败态:异或等于0 就可以解决这道题 对于SG函数随着题目的不同而不同 不过思想是不变性 */ #include #include #include using namespace std; const int N=1003; const int M=17; int f[M]; int sg[N]; void F() { f[1]=1; f[
2014-06-29 15:06:13 316
原创 hdu 1850 (博弈)
/* hdu 1850 (博弈) Rabbit的必败态:跟n堆取石子一样道理,全部异或为0 可是现在他要的是第一步有几种 每个数和除自己之外所有都进行异或, 如果这个数大于除自己之外所有都进行异或的数 就是可选择的一种 */ #include #include using namespace std; int a[110]; int main() { int m; while(sc
2014-06-28 21:03:05 406
原创 hdu 1849 (博弈)
/* hdu 1849 (博弈) Rabbit的必败态:跟n堆取石子一样道理,全部异或为0 */ #include #include using namespace std; int main() { int m; while(scanf("%d",&m)==1) { if(m==0) break; int n; int te
2014-06-28 20:33:45 321
原创 hdu 1847(博弈)
/* hdu 1847(博弈) Kiki的必败态:(n%3==0); */ #include #include using namespace std; int main() { int n; while(scanf("%d",&n)==1) { if(n%3==0) { printf("Cici\n");
2014-06-28 20:03:03 259
原创 hdu 2188 (博弈)
/* hdu 2188 题型:博弈论 Grass必败状态:n%(m+1)==0 */ #include #include using namespace std; int main() { int t; scanf("%d",&t); int n,m; while(t--) { scanf("%d%d",&n,&m); if(
2014-06-28 19:24:20 319
原创 HDU 2147 (博弈)
//杭电2147 //这一题是博弈论,走方格子棋盘 //给你n*m个,只能三种走法,向下,向左,向左下 //最后轮到她不能走输出What a pity! 否则输出Wonderful! //可以发现,如果两个都是奇数则输出What a pity!,也就说明她输了,否则输出Wonderful!她赢了 #include #include using namespace std; int main() {
2014-06-22 18:59:38 347
原创 hdu1846(博弈)
//这题是很简单的博弈论 //分析一两个数据你就发现这个博弈的一个规律 //当n%(m+1)==0时,second赢,否则first赢 #include using namespace std; int main() { int n,m; int t; cin>>t; while(t--) { cin>>n>>m;
2014-06-22 17:49:50 291
原创 poj 1077(康拓展开)
//用BFS+康拓展开解决这道题目 #include #include #include #include using namespace std; const int N=9; const int MAXSIZE = 362880; /*int N(int d) { if(i==0) { return 1; } else {
2014-06-21 16:18:43 455
原创 poj 1076 (博弈)
//poj 1067 /* 这是相对比较容易找到必败状态 先手取法:1、可以在任意的一堆中取走任意多的石子 2、可以在两堆中同时取走相同数量的石子 容易找到必败状态(1,2)(3, 5)(4, 7)(6,10)。。。 第几个必败状态 1=2-1 2=5-3 3=7-4 4=10-6....... 然而实现取有点难 可以存在这一个公式:具体看代码 */ #includ
2014-06-20 17:30:17 761
原创 大整数数相加和相乘
#include #include #include using namespace std; const int N=10000; struct Num { int s[N]; int len; }; Num operator*(Num a,Num b); Num operator*(Num a,int n); Num operator+(Num a,Num b); Num operator
2014-06-17 12:35:36 501
原创 文本对话框
import java.io.FileNotFoundException; import java.util.Scanner; import javax.swing.JFileChooser; public class DisplayLabel{ public static void main(String[] args) throws Exception { JFileChooser fc
2014-06-02 10:04:46 473
原创 java 字符串String比较要注意
public class Test { public static void main(String[] args) { String s1="100"; String s2=new String("100"); //字符串比较尽量不要用s1==s2这种方式,这种必须相同对象的字符串,而s1和s2是不同对象的 if(s1==s2){ System.out.println("
2014-06-01 21:06:33 526
2013人民邮电出版社 iOS应用开发指南 使用HTML5、CSS3和JavaScript
2016-10-22
精通脚本黑客
2016-07-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人