上一页 1 ··· 6 7 8 9 10 11 12 13 14 ··· 44 下一页
摘要: 面对最小割之类的题目,完全木想法。。。枚举+最大流。。复杂度很大了。。。居然很快的就过了。。 1 /* 2 ID: cuizhe 3 LANG: C++ 4 TASK: telecow 5 */ 6 #include 7 #include 8 #include 9 #include 10 using namespace std; 11 #define INF 0xffffff 12 struct node 13 { 14 int u,v,w,next; 15 } edge[10001]; 16 int first[1001],flag[1001],dis[10... 阅读全文
posted @ 2013-08-19 16:09 Naix_x 阅读(299) 评论(0) 推荐(0) 编辑
摘要: 水过,水过,这个程序跑7,跑5分钟左右把。。。 1 /* 2 ID: cuizhe 3 LANG: C++ 4 TASK: betsy 5 */ 6 #include 7 #include 8 #include 9 using namespace std;10 int p[8][8],ans,n;11 int o[8][8];12 int a[4] = {0,0,1,-1};13 int b[4] = {1,-1,0,0};14 void dfs(int x,int y,int step)15 {16 int i,j,k;17 if(step == n*n)18 ... 阅读全文
posted @ 2013-08-18 15:51 Naix_x 阅读(406) 评论(0) 推荐(0) 编辑
摘要: 非常恶心的一题,卡了三个月,没什么动力做了,代码直接抄的别人的。。。这题主要思路就是预处理出几个数组,再预处理出几个数组,最后DP,输出一下路径。。。写起来挺非常麻烦,代码不贴了,丢人。。。把USACO,赶紧刷完把。 阅读全文
posted @ 2013-08-18 14:33 Naix_x 阅读(149) 评论(0) 推荐(0) 编辑
摘要: 再次 回升,rating涨了150+,这次到了1670,发挥不稳定啊。什么时候来次DIV1啊。。。感觉这次题,还是挺适合我做的,没有坑爹的题意,基本都挺短的,样例+提示,基本很快就可以得到题意。第一题水题。。7分钟1Y。第二题题意跑偏了一点点。。20分钟交了次,发现理解错题意了,又折腾了20分钟,2Y。第三题推公式,高中数学递推式F(n) + 1是一个等比数列,认真检查+实现,花了我很多时间。第四题在剩下半小时,理解了题意,写了个暴力,还写错了,第二组没过。今天又看了看,最近老是做,关于树上的题。给一些时间,还是可以做出来的。用一个标记数组,标记此点到m个点里 最长的距离。先搞出m个点里的最长 阅读全文
posted @ 2013-08-17 15:13 Naix_x 阅读(285) 评论(0) 推荐(0) 编辑
摘要: 题目链接枚举A和B中每一段含有C的段,A的前面 后面和B前面后面,求最长公共子序。观察发现,可以预处理最长公共子序。 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 int dp1[1001][1001],dp2[1001][1001]; 8 char s1[1010]; 9 char s2[1010]; 10 char s3[1010]; 11 char s4[1010]; 12 char s5[1010]; 13 int que1[1010][3]; ... 阅读全文
posted @ 2013-08-15 18:28 Naix_x 阅读(253) 评论(0) 推荐(0) 编辑
摘要: 如果不在最长路的边,那么肯定是w*最长路。如果在最长路,那么把最长路分成两段,左边树的最长路就是左段+左边点的次短路(不包含最长路上的点的最长路) ,右边同理。还有就是更新,经过左端点的最长路,不一定是整颗左边树的最长路,乱搞一下就可以了。我是搞成一条链,写的很麻烦。。从一点搞到了快四点。。 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 #define INF 1000000 9 struct node 10 { 11 i... 阅读全文
posted @ 2013-08-15 18:23 Naix_x 阅读(370) 评论(0) 推荐(0) 编辑
摘要: 题目链接这是最早看懂题意的一题,状态转移,挺好想。。但是比赛时候,就是没有想到怎么去重,而且当时有些情况,也没注意到。先预处理的dp[0]的情况,就是以p[0]为结尾的情况。之后D就行了,例如样例此位6,去重只要把642896 去掉就行了,dp[1][642896%m] --;注意这个值的更新。突然发现。 1 #include 2 #include 3 using namespace std; 4 #define LL __int64 5 int dp[50100][201]; 6 int p[50100]; 7 int d[50100]; 8 int po[200100]; 9 int .. 阅读全文
posted @ 2013-08-14 15:48 Naix_x 阅读(219) 评论(0) 推荐(0) 编辑
摘要: 题目链接这是HDU第400个题。 1 #include 2 #include 3 #include 4 #include 5 using namespace std; 6 int p[30],qur[60001][6]; 7 int main() 8 { 9 int i,j,k,n,m,num;10 while(scanf("%d%d",&n,&m)!=EOF)11 {12 multiset se[40];13 multiset::iterator it;14 for(k = 1; k <= n; k ++)15 ... 阅读全文
posted @ 2013-08-14 10:27 Naix_x 阅读(233) 评论(0) 推荐(0) 编辑
摘要: 题目链接省赛训练赛上一题,貌似不难啊。当初,没做出。离线+树状数组+二分。 1 #include 2 #include 3 #include 4 using namespace std; 5 #define N 100000 6 int p[100100]; 7 int qur[300001][3]; 8 int lowbit(int t) 9 {10 return t&(-t);11 }12 void insert(int t,int d)13 {14 while(t getsum(N))34 return -1;35 str = 1;36 e... 阅读全文
posted @ 2013-08-12 20:17 Naix_x 阅读(145) 评论(0) 推荐(0) 编辑
摘要: 题目链接我看的这里:http://www.cnblogs.com/ka200812/archive/2012/01/20/2328316.html然后整理一下当做模版。0换成eps,会wa,应该要写成精度特判把。 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 #define eps 1e-8 8 #define N 110 9 struct point10 {11 double x,y;12 }p[N],temp[N],pre[N];13 int n,m;14 d... 阅读全文
posted @ 2013-08-11 16:29 Naix_x 阅读(193) 评论(0) 推荐(0) 编辑
摘要: 题目链接类似求面积并。。2Y。。 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 #define LL __int64 8 #define maxn 40100 9 #define lson l , m, rt x) 35 end = mid - 1; 36 else 37 str = mid + 1; 38 } 39 return mid; 40 } 41 void pushup(int r... 阅读全文
posted @ 2013-08-11 11:19 Naix_x 阅读(224) 评论(0) 推荐(0) 编辑
摘要: 这场CF,脑子乱死啊。。。C题,搞了很长时间,结束了,才想到怎么做。B题,没看,D题,今天看了一下,很不错的组合题。如果n和m都挺多的时候以下情况都是变为1,根据偶数个0,最后将会为1,奇数个0,最后变为0,以1开头,全都是0.0 1..0 0 0 1....0 0 0 0 01....总的情况是C(n+m,m),算1也可以算出来。注意m = 1的时候特判,0的时候,我也全写的特判。10^5的组合数,用费马小定理求逆元。看了下题解,题解直接来了个逆元。。inv(a) = a^(mod-2),完全没看懂,查了查资料,明白了。。a*inv(a) 模 mod = 1因为mod是素数,根据费马小定理, 阅读全文
posted @ 2013-08-10 20:29 Naix_x 阅读(323) 评论(0) 推荐(0) 编辑
摘要: 题目链接看的HH的题解。。周长有两部分组成,横着和竖着的,横着通过,sum[1] - last来计算,竖着的通过标记,记录有多少段。 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 #define maxn 10000 8 #define lson l , m, rt S.s; 24 return y x) 37 end = mid - 1; 38 else 39 str = ... 阅读全文
posted @ 2013-08-10 19:26 Naix_x 阅读(205) 评论(0) 推荐(0) 编辑
摘要: 题目链接终于过了,边界让我wa了好几次,猥琐的用AC代码对拍,很无奈,用非常麻烦的方法。写一下,估计以后再碰到,肯定看不懂这是写的什么了。以前做过,统计1和2的,统计0比1和2麻烦多了,有前导0的情况,不太好弄。算是用统计方法,先把sp[len-1]所有的加上,长度为len-1的情况。然后就是长度为len的情况。从高位到低位,遍历。如果此位是0,judge(str+1) + 1 + dfs(str+1),是统计当前为是0的,多少情况,但是会漏解,算是受以前那个题统计1和2的影响把。如果下一位是0,那么就不用管了,交给下位统计去把。下位不是0,计算会漏掉下位是0的情况,所以定住下位是0,组合一下 阅读全文
posted @ 2013-08-09 21:08 Naix_x 阅读(364) 评论(0) 推荐(0) 编辑
摘要: 题目链接中间计算的各种细节。有的细节没处理好,就wa了。。。主要思路就是根据卡特兰数列的:h(n)= h(0)*h(n-1)+h(1)*h(n-2) + ... + h(n-1)h(0) (n>=2) 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 using namespace std; 9 #define LL __int6410 LL ctl[101];11 LL sum[101];12 struct node13 {14 int l,r;15 }tree[... 阅读全文
posted @ 2013-08-09 17:05 Naix_x 阅读(267) 评论(0) 推荐(0) 编辑
上一页 1 ··· 6 7 8 9 10 11 12 13 14 ··· 44 下一页