上一页 1 2 3 4 5 6 ··· 19 下一页
摘要: 题目大意:n个数排成一列,在这n个数中取k段连续的长度为m的序列并最大化。dp[i][j]表示前 i 个数中取 j 段的最大值。#include #include #include using namespace std;typedef long long ll;ll dp[5100][5100],... 阅读全文
posted @ 2014-09-23 16:24 贝尔摩德 阅读(109) 评论(0) 推荐(0) 编辑
摘要: 排成一条直线的格子上有n个棋子,两个人每个人每次可以选择一枚棋子向左移动任意步数,但是不可以越过棋子,无法进行操作的一方失败,问谁会失败。先考虑偶数个棋子时的情况,将棋子从左到右两两配对,转化成n/2堆石子,每堆石子的个数为中间的空格数,这样每次向左移动可以看做在一堆石子中取了任意个,转换成了nim... 阅读全文
posted @ 2014-09-23 16:19 贝尔摩德 阅读(124) 评论(0) 推荐(0) 编辑
摘要: 题目大意:n个硬币排成一个圈,两个人依次取硬币,每次可以取一个或两个,取两个时必须是连续的两个,硬币取走后会留下空位,即不连续了。取走最后一枚硬币的获胜。第一个人取走硬币之后,第二个人可以通过取一个或两个构成对称的两组,只要第一个人能取,那么第二个人也能取。#include #include #in... 阅读全文
posted @ 2014-09-23 16:13 贝尔摩德 阅读(118) 评论(0) 推荐(0) 编辑
摘要: 给出一个字符串,对于每次的k,求所有子串(去除重复后的)中排名为k的L和R,其中如果有多组解,输出L最小的。后缀数组处理过后,sum[i]表示 sa[1] 到 sa[i] 一共有多少个非重复字串,在sum数组中二分求出k的lower_bound=pos,那么第一次出现这个子串的后缀就是sa[pos]... 阅读全文
posted @ 2014-09-17 17:08 贝尔摩德 阅读(221) 评论(0) 推荐(0) 编辑
摘要: 长度为n的直线上有几个防御塔,每个防御塔都有攻击范围为[L,R],然后给出几个怪物的血量和出现位置,问能从出现位置走到末尾的有几个。对于每次输入的防御塔的L,R和他的攻击力d,a[L]+=d,a[R+1]-=d。然后从1到n累加一遍计算出每个位置的实际伤害。最后从末尾累加到开始计算后缀和。#incl... 阅读全文
posted @ 2014-09-17 17:01 贝尔摩德 阅读(159) 评论(0) 推荐(0) 编辑
摘要: 来自九野~给定n个技能,m个限制下面是每个技能满级的级数开始每个技能都是0级。m个限制(c,l1) (d,l2) cost若c技能已经>=l1级,那么把点亮d技能 从0级一路点到l2级的花费是cost。。他说的好有道理,我竟无言以对_(:зゝ∠)_最小树形图,用0做根,触发每个技能的0级花费是0若已... 阅读全文
posted @ 2014-09-17 16:56 贝尔摩德 阅读(156) 评论(0) 推荐(0) 编辑
摘要: 题目大意是有n个房间组成一棵树,你有m个士兵,从1号房间开始让士兵向相邻的房间出发,每个房间里有一个代价,代价是值/20个士兵,同时有一个价值,问你花费这m个士兵可以得到的最大价值是多少定义dp[i][j]表示根结点为i时,用掉j个士兵获得的最大possible。dp[i][j] = max(dp[... 阅读全文
posted @ 2014-09-05 11:55 贝尔摩德 阅读(149) 评论(0) 推荐(0) 编辑
摘要: #include #include #include using namespace std;int a[100100],q[100100],l[100100],r[100100];int main(){ int i,n,cnt; while(scanf("%d",&n),n!=0) ... 阅读全文
posted @ 2014-08-28 21:26 贝尔摩德 阅读(112) 评论(0) 推荐(0) 编辑
摘要: #include #include #include using namespace std;#define maxn 100100int wa[maxn],wb[maxn],wv[maxn],ws[maxn];int r[maxn],sa[maxn];char str[maxn];int cmp(... 阅读全文
posted @ 2014-08-23 15:56 贝尔摩德 阅读(180) 评论(0) 推荐(0) 编辑
摘要: #include #include using namespace std;#define maxn 2100int dp[maxn][maxn];int val[maxn];int n;int main(){ while(scanf("%d",&n)!=EOF) { in... 阅读全文
posted @ 2014-08-17 10:04 贝尔摩德 阅读(127) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 ··· 19 下一页