摘要: /* TASK: frac1 LANG: C++ URL: http://train.usaco.org/usacoprob2?S=frac1&a=dbgwn5v2WLr SOLVE: 直接枚举,约分,排序,去重 */ #include #include using namespace std; struct node{ int nu,deno; double v; }a[40... 阅读全文
posted @ 2016-09-29 23:27 水郁 阅读(347) 评论(0) 推荐(0) 编辑
摘要: /* TASK: castle LANG: C++ SOLVE: 深搜,注意每个方向对应值。枚举去掉的墙,然后再dfs,注意墙要复原,并且dfs里要判断是否超出边界。 */ #include #include #include #define N 55 using namespace std; int n,m; int a[N][N]; int ans,num,cnt; int rans,rm... 阅读全文
posted @ 2016-09-29 22:13 水郁 阅读(383) 评论(0) 推荐(0) 编辑
摘要: /* TASK: sprime LANG: C++ SOLVE: dfs,后面每增加一位,判断当前是否为素数。 第一位不能为0 */ #include int n; void dfs(int x,int d){ for(int i=2;i<=x/i;i++) if(x%i==0)return; if(x==1)return; if(d==n){ ... 阅读全文
posted @ 2016-09-29 10:44 水郁 阅读(287) 评论(0) 推荐(0) 编辑
摘要: 1 /* 2 TASK: pprime 3 LANG: C++ 4 SOLVE: 枚举数的长度,dfs出对称的数,判断是否在范围内,是否是素数 5 原来想着枚举每个范围里的数,但是显然超时,范围最大是10^9。 6 对称的数只有9*2+9*9*2+9*9*9*2+9*9*9*9*2个,再加上几个九位数的。 7 共一万多个。 8 n=10000 9 复杂度就是O(根号n)。 10... 阅读全文
posted @ 2016-09-29 10:21 水郁 阅读(271) 评论(0) 推荐(0) 编辑
……