
C语言
文章平均质量分 68
诺诺罗亚
固执!!!!!!!!!
展开
-
HDU 3078 Network LCA .
题意:n个点 m个询问,下面一行是n 个点的权值 再下面n-1行是双向的边然后m个询问:k u v 若k==0,则把u点的权值改为v,否则回答u->v之间最短路经过点的权值中 第k大的值是多少ac代码原创 2014-08-08 18:48:49 · 388 阅读 · 0 评论 -
zoj 3471状态压缩DP
#include#includeint max(int a,int b){ if(a>b) return a; return b;}int dp[100000],map[15][15],mark[15];int main(){ int i,j,n,m,k; while(scanf("%d",&n)!=EOF&&n) { for(i=1;i<=n;i++) for原创 2015-01-23 21:36:19 · 565 阅读 · 0 评论 -
HDU 1160 FatMouse's Speed
sort排序一下就OK了啊ac代码#include#include#includeusing namespace std;struct node{ int num,w,s;}l[1010];struct asdf{ int xx,sum;}dp[1010];int cmp(node a,node b){ if(a.w!=b.w) retur原创 2015-01-23 18:35:44 · 348 阅读 · 0 评论 -
POJ 1185 炮兵阵地 经典状态压缩DP
先说下我个人的理解啊!因为炮的攻击范围是上下左右两个格子 所以dp数组里面要保证存有第i行的状态和第i-1行的状态,一个三维数组搞定,同样判断的时候也要判断两行!其他的跟poj3254没什么区别!Description司令部的将军们打算在N*M的网格地图上部署他们的炮兵部队。一个N*M的地图由N行M列组成,地图的每一格可能是山地(用"H" 表示),也可能是平原(用"P"表示)原创 2015-01-21 14:51:46 · 490 阅读 · 2 评论 -
HDU 1698 Just a hook 线段树(段更新,段询问)
In the game of DotA, Pudge’s meat hook is actually the most horrible thing for most of the heroes. The hook is made up of several consecutive metallic sticks which are of the same length.线段树段更新!!!原创 2014-12-08 18:20:42 · 360 阅读 · 0 评论 -
HUD 3466
题意就不解释了,要拥有足够的钱才能买对应价值的物品;这里应该按ss-cc排序 而不是按ss排序!因为for(j=m;j>=q[i].ss;j--){dp[j]=max1(dp[j],dp[j-q[i].cc]+q[i].vv);} 当j最小时可以写成 dp[j]=max1(dp[j],dp[q[i].ss-q[i].cc]+q[i].vv); !!!!!!!原创 2015-01-12 15:44:50 · 523 阅读 · 0 评论 -
poj 2528 离散化+线段树
这个破题 我WA 了 我实在找不到我那里错了题意:有一个墙,往墙上贴报纸,最后问能看到几张报纸其实就是很容易的线段树,不容易的地方在于离散化离散化要保存所有需要用到的值,排序后,分别映射到1~n,这样复杂度就会小很多很多这题的难点在于每个数字其实表示的是一个单位长度(并且一个点),这样普通的离散化会造成许多错误(包括我以前的代码,这题数据奇弱) 出下面两个简单的例子应该能体现普通原创 2015-01-12 15:56:59 · 506 阅读 · 0 评论 -
POJ 2828 Buy Tickets
题意:N个人插队,每一个人会给你他要插到第几个位置,和他的价值;输出最后的顺序;思路:逆序,按照空位确定位置!!!附AC代码#include#includeusing namespace std;int tree[200000*4];struct node{ int tot,v;}num[200000];int ans[200000];void bulid(int l,原创 2014-12-04 21:45:06 · 353 阅读 · 0 评论 -
HDU 2795 Billboard
题意 有一个l*w的木板,给n个1*xi的木板,每次都放到最上边且最左边!思路 找到比xi大的,且最上边的木板。注意 l*w的木板,有l和w开数组 都会爆掉!!!而w太大没什么用 所以当w>n‘时 w=n;附AC代码#include#include#define LL(x) (x<<1)#define RR(x) (x<<1)|1#includeu原创 2014-12-02 21:51:12 · 359 阅读 · 0 评论 -
HDU 1671 字典树
先解释题意:给T组数据,每组数据有N个电话号码,要求每个电话号码不能是其他电话号码的前缀,若满足要求输出YES 否则输出NO一开始WA,看了下题解 觉得很复杂........且个人认为可以更简单些。。。。。。。。于是自己卡了半个小时 AC(这个故事告诉我们 不要总看题解,自己想的也不错,这也是一个ACMer应有的品质吧)就两个判断就OK了 1.当前串能不能作为其他串的前缀原创 2014-11-24 21:18:55 · 367 阅读 · 0 评论 -
HDU 1671 字典树+释放内存
#include#include#includetypedef struct node;struct node{ int num; int id; struct node *N[10];};struct node *root;int insert(char *s){ int i,j,n,m; n=strlen(s); i=0; struct node *p,*q;原创 2014-11-24 21:04:59 · 365 阅读 · 0 评论 -
HDU 1978
题意:机器人只能#include#includeint map[150][150];int dp[150][150];int main(){ int i,j,n,m,ii,jj,t; scanf("%d",&t); while(t--) { scanf("%d%d",&n,&m); memset(dp,0,sizeof(dp)); dp[1原创 2014-11-12 21:37:13 · 810 阅读 · 0 评论 -
uva 11389
题意 :有n个司机,n个下午线,n个晚上线,每个司机要跑一个下午线一个晚上线,若两线时间之和大于d ,则要支付加班费用(两线之和-d)*r问 最小费用 orz!!!!!!真心给跪了 我咋就不懂这是个什么定理呢 附ac代码#include#includeusing namespace std;int cmp(int a,int b){ return a>b;原创 2015-08-27 19:52:02 · 380 阅读 · 0 评论