摘要:        
和URAL_1036是基本是一样的,具体的思路可以参考我的URAL_1036的解题报告:http://www.cnblogs.com/staginner/archive/2012/05/03/2481332.html。#include<stdio.h>#include<string.h>#define MAXD 10#define MAXS 50const int N = 4, S = 40;int f[MAXD][MAXS], ans[MAXD];void prepare(){ int i, j, k, sum; memset(f, 0, sizeof(f)); f[    阅读全文
        
            posted @ 2012-05-04 17:14
Staginner
阅读(311)
评论(0)
推荐(0)
        
            
        
        
摘要:        
原来URAL中tricky problem都是这么得微妙…… 直接将原图遍历,然后按遍历的时间将边标号即可,对于任意一个点,如果有至少两条边和其相连,那么至少有两条边的访问顺序是连续的,那么由于相邻的两个数的最大公约数是1,于是这样遍历一定能够得到解。#include<stdio.h>#include<string.h>#define MAXD 60#define MAXM 2510int N, M, e, first[MAXD], next[MAXM], v[MAXM], flag[MAXM], cnt;void add(int x, int y){ v[e] = y    阅读全文
        
            posted @ 2012-05-04 14:34
Staginner
阅读(282)
评论(0)
推荐(0)
        
            
        
        
摘要:        
由于上司的关系构成了一颗树,于是我们可以从树形dp的角度去考虑问题。不妨用f[cur][0]表示不选当前节点时这棵子树value的最大值,f[cur][1]表示选当前节点时这棵子树value的最大值,那么如果不选当前节点,它的子节点就可选也可不选,因此f[cur][0]要加上所有子节点x的Max{f[x][1],f[x][0]},而如果选当前节点,它的子节点必然不能选,因此f[cur][1]要加上所有子节点x的f[x][0]以及当前节点本身的value。#include<stdio.h>#include<string.h>#define MAXD 6010int N,     阅读全文
        
            posted @ 2012-05-04 14:02
Staginner
阅读(231)
评论(0)
推荐(0)
        
            
        
        
摘要:        
这个题目可以用有限自动机的理论去做,也可以在设定好各个状态后枚举可能的情况并跳转状态,比如句子已经结束这个状态设为0,处于单词中这个状态设为1,在句子中间非单词部分时这个状态设为2,这样如果处于状态0但是遇到了小写字母就算是一个错误,处于状态1但遇到了大写字母也算是一个错误。#include<stdio.h>#include<string.h>#include<ctype.h>#define MAXD 100010int N, cnt;char b[MAXD];char isend(char ch){ return ch == '.' ||     阅读全文
        
            posted @ 2012-05-04 13:35
Staginner
阅读(241)
评论(0)
推荐(0)
        
            
        
        
摘要:        
为了查找标号最小的可用的block可以用一个以block标号为关键字的最小堆实现,同时为了能够修改正在使用的block延续的时间以及适时free过时的block,可以另外开一个以block开始使用的时刻为关键字的最小堆。#include<stdio.h>#include<string.h>#define MAXD 30010#define INF 0x3f3f3f3fconst int N = 30000, T = 600;int now, M, u[4 * MAXD], t[4 * MAXD], last[2 * MAXD];char b[5];void build(    阅读全文
        
            posted @ 2012-05-04 00:05
Staginner
阅读(220)
评论(0)
推荐(0)
        
 
                    
                 
 
         浙公网安备 33010602011771号
浙公网安备 33010602011771号