- 博客(18)
- 资源 (3)
- 收藏
- 关注
原创 HDU 4010
题目:http://acm.hdu.edu.cn/showproblem.php?pid=4010 动态树,表示完全不会,第一见遇到。 有时间消化下大神的代码:http://hi.baidu.com/yy17yy/item/465649279358993395f62b59
2012-07-15 12:18:16 904
原创 HDU 4022
题目:http://acm.hdu.edu.cn/showproblem.php?pid=4022 方法一:很容易想到可以用stl 解决。。但是就是不能构造出来。。因为不知道map的一对多要怎么搞。。(map >这样可以一对多 取其对应的迭代值要这样 for(multiset::iterator it=a[k].begin();it!=a[k].end();it++) ) 剩下的
2012-07-14 11:47:33 716 1
原创 HDU 4028
题目:http://acm.hdu.edu.cn/showproblem.php?pid=4028 线性离散化DP。。。表示不会。。如果直接用数组存放会爆掉内存的。。所以用map。 DP[i][j]是以第i个指针为结束的最小公倍数j的方案数。 typedef mapmp; 第一个表示第i个指针为结束的最小公倍数j,第二个为以第i个指针为结束的最小公倍数j的方案数
2012-07-13 12:55:01 887
原创 HDU 4027
题目:http://acm.hdu.edu.cn/showproblem.php?pid=4027 数据很大,很容易发现要用线段树,但是在不能建成普通的叶子树,要弄成区间的,成段的更新。那样每次更改节点的复杂度很大。仿造别人的代码才AC掉, 而且if(trie[id].isOne==1) return;写成了if(trie[id].isOne=1) return; 导致查了半天!!
2012-07-12 20:48:21 686
原创 HDU 4007
题目:http://acm.hdu.edu.cn/showproblem.php?pid=4007 可以暴力的题,先按X排序,选出在【x,x+r】这个区间类符合条件的点,然后对这些点在按y排序,找出出包含最大点的矩阵。 下面是AC代码:#include #include using namespace std; struct node{ int x,y; }cd[1010]
2012-07-10 08:55:38 844
原创 HDU 4002
题目:http://acm.hdu.edu.cn/showproblem.php?pid=4002 不会推理过程。 下次如果遇到类似的题, 在不能找到方法时,可以写一个暴力的程序,通过找出来的数的关系,由特殊的推出一般公式,这应该也是一种很好的解题办法。
2012-07-09 22:17:19 824
原创 HDU 4001
题目:http://acm.hdu.edu.cn/showproblem.php?pid=4001 思路很简单,就是转化成最长上升子序列,但是各种细节错误,导致了一直不能AC。。= =!! 尤其是在求面积的时候, __int64 s=a*b; 如果a,b为int类型的一定要对a或b进行强制转化,不然会越界的!! 应该写成__int64 s=(__int64 )a*b。
2012-07-09 18:23:54 862
原创 HDU 4004
题目:http://acm.hdu.edu.cn/showproblem.php?pid=4004 二分。不会。 看了题解才写出的。首先,青蛙最低必须满足的跳跃米范围为(ans=任意相邻两个石头的最大距离),青蛙的的跳跃范围为【ans,L】,然后对跳跃范围进行二分。 对于每一次的跳跃,有点贪心的思想,每次跳跃到哪个石子的选择,就是选择 离当前跳跃到的位置最近的石子。 下面是
2012-07-08 21:29:36 1427
原创 HDU 4006
题目:http://acm.hdu.edu.cn/showproblem.php?pid=4006 优先队列,优先队列默认是按从大到小排列的,如果想要按从小到大排列就:priority_queue,greater > q; 这题主要就是维护一个长度为K的优先队列就行了,I操作:每次遇到比队列里的最小值大的话就,把队顶元素删除,把这个值添加到队列中。 Q操作:直接输出队顶元素。
2012-07-07 21:07:07 1214
原创 poj 1928
题目:http://poj.org/problem?id=1928 直接模拟。。 下面是AC代码: #include int main(){ int t; int row, col; int time; int l; scanf("%d",&t); for(l=1;l<=t;l++){ scanf("
2012-07-07 12:07:34 811
原创 Poj 1922
题目:http://poj.org/problem?id=1922 贪心,求出》=0秒出发中的最短时间即可 #include #include #include using namespace std; int main() { int n,i; while (scanf("%d", &n) && n) { int a, b; int estA
2012-07-07 02:40:40 790
原创 ZOJ 2397
题目:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2397 题目很长,读的蛋疼,是个贪心题,但是一开始想得太简单了,一开始以为直接找tianji最大速度马比掉,比这个速度小的king最大速度马就行了额。 其实这题主要分两大步,先tianji和king中没比过的最大速度的马,进行比较三种状态, 如果ti
2012-07-06 23:03:13 1069 1
原创 ZOJ 2423
题目:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1423 预处理,动态规划的思想,处理的时候要把每一行的空格补全(处理成一个矩形),在处理的时候才方便,最后去掉多余的空格。 但是在字符串处理的时候错了很多次,string 好像不能直接对末尾的那个字符串进行这样的赋值 str[i][j]='\0';。
2012-07-06 18:24:03 765
原创 ZOJ2425
题目:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1425 题意很简单,就是给出n,m求n个数下逆序个数为m的最小排列,求出最小排列。 我用的暴力+贪心的方法。 用m与当前个数(也就是剩下需要写出的个数)的最大逆序个数进行比较,容易知道当前逆序最大的个数为s=(n)*(n-1)/2; 如果s==m直接逆序打印
2012-07-06 11:37:11 873
原创 ZOJ 2424
题目:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1424 卡特兰数+高精度,推理过程就是,以任意一个点为起始点(比如:1),那么1这个点连接的另一个点一定是偶数(奇数会出现交叉),所以连接的这条直线就把所有剩下的点分成了两半。那么f[i]+=f[一半]*f[另一半]。 下面是AC代码:import ja
2012-07-05 10:43:59 594
原创 ZOJ 2421
题目:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1421 简单题,将出现的数字标记下,就可以了。 数组开大会爆掉 下面是AC代码:#include using namespace std; int f[500005]; bool mark[10000000]; int main(){ f[0]=0;
2012-07-05 09:16:03 614
原创 ZOJ 2420
题目:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1420 模拟题。。首先知道每个月又多少天,这题就简单了。 前7个单数是31天,其他30天(除了2月),8后面月数,偶数为31天其他为30天。 #include #include using namespace std; int year[2] =
2012-07-05 08:17:49 730
原创 ZOJ2418
题目:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1418 虽然是个简单的DFS。。但是还是打了半天,题意很简单,就是对于每一行的数可以进行向右移动,每一行移动的次数可以为0,1,2.....n-1, 那么他的事件复杂度为7^7=823543.暴力DFS可以直接AC。 下面是AC代码: #include usin
2012-07-05 07:08:23 936
android studio 中文包
2016-11-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人