2011年6月2日

HDU 1566 color the ball

摘要: 这道线段树的题目纠结了好长时间,本来的想法真是太天真了,向线段树里面插入一段线段,当时错误的想法是他的所有的子树同样要更新,这样效率自然就下降了,TLE了很长时间,后来才想出来计算(i,i)被涂色的次数,只要插入的线段包含这个区间,就把它加起来,最后求和。这道题用树状数组做挺简单,但是还没学过树状数组是神马东西,以后再学了#include<stdio.h>int N;const int MAX=100010;struct line{ int left; int right; int number;};line lines[MAX<<2];void buildTree(i 阅读全文

posted @ 2011-06-02 11:11 lonelycatcher 阅读(392) 评论(0) 推荐(0) 编辑

2011年6月1日

HDU 1166 敌兵布阵

摘要: #include<stdio.h>int N;const int MAX=50010;int numbers[MAX];char s[7];struct line{ int left; int right; int maxNum;};line lines[MAX<<2];void buildTree(int le,int ri,int root){ lines[root].left=le; lines[root].right=ri; if(le==ri) { lines[root].maxNum=numbers[le]; return ; } int mid=(le+r 阅读全文

posted @ 2011-06-01 20:10 lonelycatcher 阅读(235) 评论(0) 推荐(0) 编辑

2011年5月31日

HDU 2084 数塔 动态规划解法

摘要: 用cin居然比scanf效率低了10倍,真有点不可思议。。。。。#include<stdio.h>#include<string.h>int N;int number[5100];int dp[5100];int max(int a,int b){return a>b?a:b;}int main(){ int T; scanf("%d",&T); while(T--) { int i,j; scanf("%d",&N); for(i=1;i<=N*(N+1)/2;i++) { scanf("% 阅读全文

posted @ 2011-05-31 20:45 lonelycatcher 阅读(192) 评论(0) 推荐(0) 编辑

NOIP 能量项链

摘要: 题目分析转自:http://www.cnblogs.com/sdjl/articles/1281607.html此题解析如下:1、过程很明显,就是合并珠子的过程,从一串珠子共n颗开始,每次合并相邻的两颗为一颗,直到剩下一颗为止。2、过程的最后一个步骤是把两颗珠子进行合并,这两颗珠子可以这样考虑,其中一颗是连续的r颗合并得到的,另一颗是其余的n-r颗连续的珠子合并得到的,那么选择就是这个r颗连续的珠子如何选取,以顺时针选取考虑每颗珠子开头的情况,共有n种选择。3、子问题是选择的这r颗连续的珠子最多能够得到多少能量,以及另外n-r颗连续的珠子最多能够得到多少能量,如果子问题能够得到最优的值,那么母 阅读全文

posted @ 2011-05-31 19:41 lonelycatcher 阅读(1608) 评论(0) 推荐(0) 编辑

2011年5月27日

HDU 3008 Warcraft

摘要: 哎,折磨死人的dp题,反正对于我来说是的,看了其他大牛们的代码过的,惭愧。。。。。#include<stdio.h>#include<string.h>int n,t,q;int skillCost[110];int skillhurt[110];int dp[110];//dp[i][j]表示第i轮攻击,boss还剩下j滴hp时候剩下的最大mpint max(int a,int b){ return a>b?a:b;}int main(){ while(scanf("%d%d%d",&n,&t,&q)) { if(n= 阅读全文

posted @ 2011-05-27 23:36 lonelycatcher 阅读(417) 评论(0) 推荐(0) 编辑

导航