夏夜、

心若平似镜、何题不AC。

上一页 1 ··· 8 9 10 11 12 13 14 15 下一页

2013年9月3日

UVA 10817 Headmaster's Headache 状态DP

摘要: 因为每个人只能选一次,所以枚举状态的时候从大到小。读入数据比较麻烦,可以用istringstream 或sscanf 或自己写个函数逐个字符处理。//#pragma comment(linker, "/STACK:1024000000,1024000000")#include#include#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;typedef long long ll;typedef 阅读全文

posted @ 2013-09-03 19:13 BMan、 阅读(255) 评论(0) 推荐(0) 编辑

UVA 10564 Paths through the Hourglass DP

摘要: 注意用long long。//#pragma comment(linker, "/STACK:1024000000,1024000000")#include#include#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;typedef long long ll;typedef pair pii;#define pb(a) push_back(a)#define INF 0x1f1f1f1f#d 阅读全文

posted @ 2013-09-03 17:00 BMan、 阅读(261) 评论(0) 推荐(0) 编辑

2013年9月2日

HDU 3397 Sequence operation 线段树 成段更新 区间合并

摘要: 比较综合的题。两个标记 setv,xorr。setv的优先级高于xorr,当一个节点获得一个setv时,他之前的xorr要清除。//#pragma comment(linker, "/STACK:1024000000,1024000000")#include#include#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;typedef long long ll;typedef pair pii 阅读全文

posted @ 2013-09-02 18:05 BMan、 阅读(1090) 评论(0) 推荐(0) 编辑

HDU 3308 LCIS 线段树 单点更新+区间合并

摘要: 感觉区间合并都一个样,没什么好说的。//#pragma comment(linker, "/STACK:1024000000,1024000000")#include#include#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;typedef long long ll;typedef pair pii;#define pb(a) push_back(a)#define INF 0x1f1f1 阅读全文

posted @ 2013-09-02 00:51 BMan、 阅读(157) 评论(0) 推荐(0) 编辑

2013年9月1日

POJ 3667 Hotel 线段树 区间合并

摘要: 结点记录三个信息,区间最长的连续空房间,最长前缀和后缀//#pragma comment(linker, "/STACK:1024000000,1024000000")#include#include#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;typedef long long ll;typedef pair pii;#define pb(a) push_back(a)#define IN 阅读全文

posted @ 2013-09-01 23:53 BMan、 阅读(215) 评论(0) 推荐(0) 编辑

UVALive 3942 Remember the Word Tire+DP

摘要: dp[i]=sum{dp[j]},s[i...j-1]为出现过的单词,每次从s[i]开始查找全部出现的前缀s[i..j],前缀在Tire中存在则转移状态。//#pragma comment(linker, "/STACK:1024000000,1024000000")#include#include#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;typedef long long ll;typ 阅读全文

posted @ 2013-09-01 10:51 BMan、 阅读(262) 评论(0) 推荐(0) 编辑

2013年8月22日

POJ 1703 Find them, Catch them

摘要: 简单带权并查集0,1关系//#pragma comment(linker, "/STACK:1024000000,1024000000")#include#include#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;typedef long long ll;typedef pair pii;#define pb(a) push_back(a)#define INF 0x1f1f1f1f#de 阅读全文

posted @ 2013-08-22 14:44 BMan、 阅读(188) 评论(0) 推荐(0) 编辑

2013年8月21日

UVA 1366 Martian Mining DP

摘要: 为了方便,记从右到左运输的为A矿,从下到上运输的为B矿。首先,假如我们在第i行的前k格架了运输管道运输这K个格子的A矿,那么对于i下面的其他行最少都能架上k格管子,因为不架也是浪费,这一片区域的B矿已经不可能运输了,都被i行的管道挡住了。基于这点,当第i行前K格用来运输A矿时,剩下的第K+1,K+2...M格就能用来运输B矿,因为上面不会被挡着。dp[i][j]表示第i行,且前面最长的A型管(左右型)为j的状态。则dp[i][j]=max(dp[i+1][k]+f[i][k+1],j#include#include#include#include#include#include#include 阅读全文

posted @ 2013-08-21 15:41 BMan、 阅读(257) 评论(0) 推荐(0) 编辑

UVA 1456 Cellular Network 贪心+DP

摘要: YY过程:概率大的应该先访问吧,嗯,排序一下试试。然后就AC了。。。我也不知道怎么证明这样贪心是正确。。至于DP的过程就是水题了,DP[i][j]表示从第i个开始,分成j组的最小期望//#pragma comment(linker, "/STACK:1024000000,1024000000")#include#include#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;typedef lo 阅读全文

posted @ 2013-08-21 14:37 BMan、 阅读(171) 评论(0) 推荐(0) 编辑

UVA 11573 Ocean Currents

摘要: 用优先队列代替普通队列,这是不是叫权值优先搜索?注意的是与普通队列不同,需要在进队后马上标记,不能等到访问结点的时候再标记,避免多次进队导致复杂度太高。而普通队列是无所谓的。// #pragma comment(linker, "/STACK:1024000000,1024000000")#include#include#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;typedef long 阅读全文

posted @ 2013-08-21 13:30 BMan、 阅读(240) 评论(0) 推荐(0) 编辑

上一页 1 ··· 8 9 10 11 12 13 14 15 下一页

导航