
HDU
Mr_Xujh
无论走在那条路上都要做一个优秀的人
展开
-
HDU 2129 Computer
题意:一个有N个结点的树,给你相邻两个结点的距离,问你对于第i个结点,树中离i最远的结点的距离是多少。 思路:每一个节点有两种情况,一种是在子树中,一种是在非子树中,所以就可以用两次的dfs分别求出两种最长距离 #include #include #include #include #include using namespace std; const int N=10005;原创 2015-06-04 22:22:29 · 510 阅读 · 0 评论 -
HDU 5445 Food Problem
题意:首先有n种点心,每种点心的t,u,v代表该点心每个所提供的能量,体积,数量。 然后有m中车,每种车的x,y,z代表这种车的容量,费用,数量。 又有一个p,问你所选的点心达到p的能量值的时候所需要的最少费用。(点心可以切割,即可以分开到每辆车里面,但是一旦选了一个,就整的 都要放进车里) 因为点心师可以切割的,所以我们可以分两次dp,第一次先求出要达到p能量的时候需要的最小原创 2015-09-14 10:07:13 · 1348 阅读 · 0 评论 -
HDU 4417 Super Mario
题意:给你一个N大小的数列a[0].....a[n-1],输入L,R,H 求[L,R]区间内满足a[i] 这里我用了主席树来写 #include #include #include #include #include #include using namespace std; const int N = 100005; const int M = N * 40; int n,m,原创 2015-08-05 16:06:02 · 407 阅读 · 0 评论 -
HDU 5316 Magician
题意:给你一个数列,然后要有两种操作。操作1 x y 代表把数列的第x个数字改成y 操作0 x y 代表在a[x]....a[y]间找到一个beautiful 子序列的和最大 beautiful 子序列就是相邻的两个数在原来的数列的位子的奇偶性不一样 如a[1],a[4],a[5]就是,但a[2],a[4],就不是,因为2、4的奇偶性一样。 思路:线段树,用一个结构体去保存某段的b原创 2015-07-28 20:34:35 · 448 阅读 · 0 评论 -
HDU 3507 Print Article
利用斜率来优化dp 参考: http://www.cnblogs.com/ka200812/archive/2012/08/03/2621345.html #include #include #include #include #include using namespace std; #define ll long long const int N = 500005; int原创 2015-08-13 18:42:33 · 409 阅读 · 0 评论 -
HDU 5318 The Goddess Of The Moon
题目:说了个后羿的传说。。。 给你n种串,可以重复使用,要你用m个串连成一个长的串,问你会用多少种不一样的长串,,,两个串 a , b 可以相连的条件是a的结尾跟b的开头的字符要一样,一样的字符的长度大于2就行 如 121 跟 213 但121 跟 123 就不行,当然121跟121也行 11 111与111 11 连接的时候算两种 思路:构造一个可以矩阵m[i]原创 2015-08-01 14:17:31 · 433 阅读 · 0 评论 -
HDU 3045 MAX Average Problem
斜率优化DP dp[i] =max(dp[i],dp[j]+sum[i]-sum[j]-(i-j)*a[j+i]); #include #include #include #include #include #include using namespace std; #define ll long long const int N = 500005; ll dp[N], s原创 2015-08-13 20:32:24 · 417 阅读 · 0 评论 -
HDU 4348 To the moon
题目要求有一下几个操作:区间加个数(此时时间计数+1),查询区间和,查询历史区间和,时间回退到过去某个时间。 可持久化线段树,用T[i]表示时间为i的时候的树根; 由于整一个更新只有单一的加法,所以我们不必利用lazy标记,我们用一个标记来记录当前节点的整段区间被累加了多少,当询问的时候我们在从根节点走到目标结点的过程中不断累加所经过节点上的标记值,这样就提高了每棵树的共享信息 #i原创 2015-08-22 19:49:46 · 625 阅读 · 0 评论 -
HDU 3062 Party
2-sat 入门题 《由对称性解2-SAT问题》 #include #include #include #include #include using namespace std; const int N = 2010; vector vec[N]; int n, m, id, cnt; int dfn[N], vis[N], low[N], belong[N]; stack s;原创 2015-07-26 17:41:58 · 456 阅读 · 0 评论 -
HDU 5236 Article
题意: 每 i+0.1秒可以打一个字 每 i+0.9秒软件有P的概率会崩溃(然后只能打开上一次保存的文章继续打字) 每 i秒可以保存一次但是代价为 要打X个字符后才能保存(此时可以看成一瞬间打完X个字) (整篇文章打完之后当然要保存一次) 求最佳策略使得打的字数量的期望最小 题解: 假设我们要保存k次(枚举k) 那么我们猜想就是使得保存均匀一些 此时求出每段的期望原创 2015-06-12 20:37:05 · 711 阅读 · 0 评论 -
HDU 5446 Unknown Treasure
题意:求C(n,m)%p p = p1 * p2 *....*pk; Lucas定理 + 中国剩余定理 http://blog.sina.com.cn/s/blog_12fea76590102w6ts.html #include #include #include #include #include #include #include using namespace原创 2015-09-18 21:55:00 · 480 阅读 · 0 评论