HDOJ
文章平均质量分 69
Anonymous-邦
阿里巴巴家种芝麻的
展开
-
hdu4970 Killing Monsters
题目难点,给定区间值,如何求原创 2014-08-19 18:16:16 · 501 阅读 · 0 评论 -
hdu5327 Olympiad(数组前缀和+set判重)
题意:美丽的数字:每一位数都不相同。求区间内美丽数字个数。#include#include#include#include#include#include#include#include#include#include#include#define ll __int64using namespace std;const int INF=0x3fffffff;int原创 2015-09-06 10:44:19 · 474 阅读 · 0 评论 -
hdu5316 Magician(线段树区间合并)
题意:T组数据n个数,m个操作,0表示把位置a上的数改成b,1表示求区间[a,b]的最大的美丽子串和美丽子串:相邻元素下标奇偶性不同,序列可不连续。#include#include#include#define LL __int64#define lson rt<<1#define rson rt<<1|1using namespace std;const原创 2015-09-01 17:40:29 · 417 阅读 · 0 评论 -
hdu5319 Painter(模拟)
题意:刷墙,两把刷子,只能沿对角线刷,并且一次必须刷完一条线。红色刷子沿'\' 方向,蓝色刷子沿'/'方向,都刷到的格子为绿色。给出最终状态,求最少需要刷多少次可以达到。思路:对于'\',如果当前格子为红色或者绿色,前一个格子(斜线上的)既不是红色也不是绿色,则必然要刷一次。同理,'/'上的也是。#include#include#include#include#includ原创 2015-09-02 09:54:01 · 877 阅读 · 0 评论 -
hdu3911 Black And White(线段树区间合并)
题意:给一个由0,1组成的序列,有两种操作,一种是翻转给定区间的数(0->1,1->0),另一种是查询给定区间内由1组成的子串的最大长度。重点在区间合并和延迟标记。#include#include#include#include#include#include#include#include#include#include#define INF 0x3fffffffusi原创 2015-09-01 10:04:14 · 842 阅读 · 1 评论 -
hdu5326 Work(树形dp)
题意:n个人,有n-1个关系,表示A管理B,求管理人数为K的人数。(间接上司也算上司)#include#include#include#include#include#include#include#include#include#include#define ll __int64#define INF 0x3fffffffusing namespace std;i原创 2015-08-29 10:54:59 · 731 阅读 · 0 评论 -
hdu5317 RGCDQ(dp)
题意:F(x)表示数x质因子的个数,对于给定的区间(L,R),求maxGcd(F(i),F(j)) (l思路:打表。2*3*5*7*11*13*17*19>MAXN,所以一个数最多只有7个质因子。#include#include#include#define MAXN 1000010using namespace std;int isp[MAXN];int sum[MAXN]原创 2015-08-27 12:46:53 · 574 阅读 · 0 评论 -
hdu 1520 Anniversary party(树形DP)
本题可用树形DP求解(即在树上DP).father数组记录节点父亲,ch容器记录儿子。dp[i][0]表示以节点i为跟的子树的最大总权值(不选点i),dp[i][1]表示选点i。#include#include#include#include#include#include#include#include#include#include#define ll __int6原创 2015-04-20 18:16:58 · 531 阅读 · 0 评论 -
HDU 1175 连连看(BFS)
题意解析:其实就是判断起始点能否到达终止点。如果起始点和终止点值不同,直接输出NO。bfs,dfs都行。附加条件:①不能出边界 ②不能走值为0的点 ③路径不能转向两次以上节点需要记录该点的坐标,方向,转向次数。下面是BFS代码(注意剪枝:超过两次的就不要再加入队列了)#include#include#inc原创 2015-03-10 16:58:51 · 1046 阅读 · 0 评论 -
HDU1024 Max Sum Plus Plus(DP)
状态:d(i,j)表示前j个数分为i段且包含第j个数时的最优结果,g(i,j)表示前j个数分为i段时的最优结果,g(m,n)即为所求结果。本题数据较大,需采用滚动数组,注意:这题int类型就够用了,开long long可能会TLE。用滚动数组后,g[j]表示分成i段时最优结果,最后求出的g[n]即为结果#include#include#include#include#inclu原创 2014-11-10 20:37:18 · 740 阅读 · 0 评论 -
HDU1003 Max Sum(最大连续子段和)
#include#include#include#includeusing namespace std;int main(){ int T,n; int t=1; //freopen("d:\\test.txt","r",stdin); scanf("%d",&T); for(int k=1;k<=T;k++) { sc原创 2014-08-31 13:30:03 · 555 阅读 · 0 评论 -
HDU2094 产生冠军
思路:产生冠军的条件是只有一个点的入度为0,其他情况都不可能原创 2014-09-17 15:30:09 · 728 阅读 · 0 评论 -
HDU1285 确定比赛名次(拓扑排序)
#include#include#include#include#include#includeusing namespace std;vector >G(505);int Count[505];int indegree[505];int main(){ int n,m; //freopen("d:\\test.txt","r",stdin); w原创 2014-09-16 22:03:33 · 614 阅读 · 0 评论 -
HDU1019 Least Common Multiple(求多个数的最小公倍数)
快速gcd原创 2014-09-01 11:02:31 · 598 阅读 · 0 评论 -
HDU5007 Post Robot
201ACM西安网络赛第一题,水题。。。#include#include#include#includeusing namespace std;char s[10000];int main(){ //freopen("d:\\test.txt","r",stdin); while(scanf("%s",s)!=EOF) { int le原创 2014-09-14 18:01:20 · 1103 阅读 · 2 评论 -
HDU1018 Big Number(求阶乘位数)
#include#include#includeusing namespace std;int main(){ int kase,n; scanf("%d",&kase); while(kase--) { scanf("%d",&n); double sum=0; if(n==0) {printf("1\n"原创 2014-08-31 23:44:58 · 469 阅读 · 0 评论 -
HDU4993 Revenge of ex-Euclid(hash)
看到这题就条件反射的想到了hash......#include#include#include#includeusing namespace std;int hash[1000001];int main(){ int T; //freopen("d:\\test.txt","r",stdin); cin>>T; while(T--) {原创 2014-09-13 09:49:41 · 952 阅读 · 0 评论 -
hdu5328 Problem Killer(dp)
题意:给一个序列a,求最长的子串长度,子串必须是等差或者等比数列。注意:不要开数组,不然会TLE。#include#include#include#include#include#define ll __int64using namespace std;int ap;int gp;int Max(int a,int b){ return a>b ?a原创 2015-09-06 09:11:47 · 493 阅读 · 0 评论