OJ竞赛题之hdu
文章平均质量分 71
楼上小宇
more AC, more happy!!!
展开
-
动态规划之hdu课件
一、概念 动态规划策略,一种分治策略。和贪婪策略一样,通常是用来解决最优解问题。分治故名就是将问题分解为几个子问题来解决,动态规划的特点就是分解的子问题中(子问题又可以分解成子问题)每次选择选择最优解。 动态规划主要的特点是在做决定前她知道所有子问题的信息。 动态规划的两个重要要素是:1)最优子结构。2)重叠子问题。原创 2015-03-06 08:34:46 · 700 阅读 · 0 评论 -
hdu 2072 单词数 寒假集训1 -03
链接#include#include#include#includeusing namespace std;char a[10000];char b[10000][100];int main () { // freopen("E:\input.txt", "r", stdin); char *c=NULL,*d=NULL; //指针初始化!!! i原创 2016-01-11 14:46:54 · 378 阅读 · 0 评论 -
hdu 2097 Sky数 寒假集训1 06
原题链接思路:其实只需求各个位数之和,不需要进行进制转换,开始想的复杂了,同时采用函数进行书写,可大大提高效率和减少代码量#include#include#include#includeusing namespace std;int f(int n, int m){ int sum = 0; while (n) { sum += n % m; n原创 2016-01-11 16:19:42 · 353 阅读 · 0 评论 -
HDU-2089 不要62 寒假集训1 08
原文链接这题大部分方法采用数位DP可做,但是采用bool类型标记更简便#include#include#include#includeusing namespace std;#define N 1000005bool a[N];bool f(int num){ int len, i; char s[10]; sprintf(s, "%d", n原创 2016-01-11 19:21:59 · 376 阅读 · 0 评论 -
hdu 2094 产生冠军 寒假集训1 09
原文链接思路一:产生冠军的条件:(1)获胜的人没输过一次(2)最终获胜的人只有一个思路二:观察一下,可以看到其实只要总元素数-失败者==1就可以输出YES了。。思路三:左边的为胜利者,右边的为失败者,如果左边的胜利者只有一个没在右边出现过,那么这个就是产生的冠军,否则产生不了。#include#include#include#includeusing names原创 2016-01-11 21:03:55 · 379 阅读 · 0 评论 -
hdu 2079 选课时间 DP动态规划 母函数 穷举 寒假集训1 07
原题链接这题困扰很长时间,感觉有思路,却又无从下手,考虑到穷举,但实在没耐心,再而想到是DP,但是确实转移方程不好想到,最后用DP果然代码最短而且速度快,网上说母函数也可以做,关于母函数一直没有弄懂,该找个时间好好练一练了/*Description:DPAuthor:styData:2016/1/11*/#include#include#incl原创 2016-01-11 23:47:57 · 680 阅读 · 0 评论 -
寒假集训02 J hdu 5303 DP+枚举
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5303题意:在一圈长为l的圆圈周围种了n棵苹果树有一个容积为k的篮子圆圈的原点是0,顺时针方向记录了苹果树的位置以及苹果的数量将苹果全部摘完,最少需要走多少路篮子装满就必须走回原点题目分析:对这个环,有3种操作:1.顺时针过去取2.逆时针过去取原创 2016-01-14 17:17:11 · 382 阅读 · 0 评论 -
寒假集训2 B hdu 5272 关于二进制
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5272判断一个数中有多少组不连续的1,注意是组,即1101有2组,101也有两组主要通过移位运算判断#include #include #include#include#include#include#includeusing namesp原创 2016-01-14 19:50:08 · 444 阅读 · 0 评论 -
寒假集训2 c 时钟问题 hdu 5387
原文链接Problem C Time Limit : 2000/1000ms (Java/Other) Memory Limit : 65536/65536K (Java/Other)Total Submission(s) : 1 Accepted Submission(s) : 1Font: Times New Roman | Verdana | Georgi原创 2016-01-15 13:32:26 · 460 阅读 · 0 评论 -
hdu 5364 简单模拟
原文链接原创 2015-08-09 10:43:07 · 609 阅读 · 0 评论 -
hdu 1966 /poj 2066 Minimax Triangulation 计算几何
原文链接: hdu poj 题目大意:给你n个点围城的多边形,顺时针或者逆时针给你,起始点任意,让你把他划成n-2个三角形,这些划法中最大的三角形的面积最小,输出这个最小值。思路:按照区间长度进行DP。对于 i~j 这些点,考虑新加入的点是j,那么就多了两条弦 i~j,j-1 ~j,对于 i~j 这条弦,加进去,它能围成的是 Aea2(i,k,j),i<k<j原创 2015-07-13 10:13:38 · 661 阅读 · 0 评论 -
hdu 1086 计算几何 线段求交
原文链接 我们分两步确定两条线段是否相交: (1)快速排斥试验 设以线段 P1P2 为对角线的矩形为R, 设以线段 Q1Q2 为对角线的矩形为T,如果R和T不相交,显然两线段不会相交。 (2)跨立试验 如果两线段相交,则两线段必然相互跨立对方。若P1P2跨立Q1Q2 ,则矢量 ( P1 - Q1 ) 和( P2 - Q1 )位于矢量原创 2015-07-10 15:46:03 · 455 阅读 · 0 评论 -
hdu 4540 威威猫系列故事——打地鼠 dp
原文地址简单dp#include#include#includeusing namespace std;int a[22][12];int f[22][12];int main(){// freopen("E:\input.txt", "r", stdin); int n, k, i, j, min; while ((scanf("%d%d"原创 2015-03-29 10:28:07 · 700 阅读 · 0 评论 -
hdu 5198 简单题
Strange Class#include#include#includeusing namespace std;char a[15];int main(){// freopen("E:\input.txt", "r", stdin); int b[3]; char x, y, z; while ((scanf("%s", a)) != EOF) { memset(原创 2015-04-04 23:27:42 · 532 阅读 · 0 评论 -
hdu 5178 二分查找
原文链接源代码1:#include#include#includeusing namespace std;int main(){ long long int i,j,k,l,r,n,t,m,mid; long long int a[100005]; scanf("%d",&t); while(t--) { long long int ans=0; sca原创 2015-05-09 23:37:32 · 929 阅读 · 0 评论 -
hdu 4704 费马小定理+快速幂
题目链接题意:给定一个数n 将其分解,Si 表示将n拆成i个数的方案数求sum( si ) 1分析:隔板原理, n个木棍,n-1个缝,分成1份则是C(n-1,0);分成2份则是C(n-1,1);分成3份则是C(n-1,2);...分成n份则是C(n-1,n-1);ans = sum( C(n-1原创 2015-05-22 12:08:28 · 499 阅读 · 0 评论 -
2015 百度之星1001搬家 组合问题
大搬家 Accepts: 1516 Submissions: 6288 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Problem Description近期B厂组织了一次大搬家,所有人都要按照指示换到指定的座位上原创 2015-05-27 21:48:59 · 636 阅读 · 0 评论 -
hdu 1422 重温世界杯
重温世界杯 问题模型 环形序列的最长非负连续子序列#include #includeint a[200010]; //存储生活费和花费之差int ans[200010]; //ans[i] 存储的是以i结尾最优值int main(){ int n; int i; int w, l; while原创 2015-06-05 13:56:44 · 532 阅读 · 0 评论 -
hdu 5056
题目链接题目大意:计算在子串中每个小写字母出现次数不超过k次的个数官方题解:#include#include#include#include#includeusing namespace std;char str[100010];int cnt[30];int main(){ int T,k,i; scanf("%d",&T)原创 2015-06-06 11:16:24 · 507 阅读 · 0 评论 -
BestCoder Round #43 HDU 5065 关于数字取余的问题
pog loves szh IITime Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 459 Accepted Submission(s): 123Problem DescriptionPog and Szh原创 2015-06-07 23:31:10 · 534 阅读 · 0 评论 -
寒假集训2 H hdu 5265 贪心
题目链接Problem DescriptionPog and Szh are playing games.There is a sequence with n numbers, Pog will choose a number A from the sequence. Szh will choose an another number named B from the rest原创 2016-01-15 16:11:39 · 580 阅读 · 0 评论 -
寒假集训2 I 二分 hdu 5178
Problem ITime Limit : 2000/1000ms (Java/Other) Memory Limit : 32768/32768K (Java/Other)Total Submission(s) : 9 Accepted Submission(s) : 1Font: Times New Roman | Verdana | GeorgiaFont S原创 2016-01-18 16:26:06 · 446 阅读 · 0 评论 -
递推算法
(hdu 2050)折线分割平面分析:根据直线分平面可知,由交点决定了射线和线段的条数,进而决定了新增的区域数。当n-1条折线时,区域数为f(n-1)。为了使增加的区域最多,则折线的两边的线段要和n-1条折线的边,即2*(n-1)条线段相交。那么新增的线段数为4*(n-1),射线数为2。但要注意的是,折线本身相邻的两线段只能增加一个区域。递推:f(n)=f(原创 2015-03-01 20:34:37 · 489 阅读 · 0 评论 -
hdu5174 Ferries Wheel (暴力求解也是有艺术的)
原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=5174这一题的难点关键在于如何统计出满足条件(his/her cable car's value + the left car's value) % INT_MAX = the right car's value)的同一车厢的人数有多少。还有一点容易忽略的一组数据就是(214原创 2015-02-16 15:47:53 · 1022 阅读 · 0 评论 -
HDU 5171 GTY's birthday gift(矩阵快速幂)
原题地址为:http://acm.hdu.edu.cn/showproblem.php?pid=5171显然每次会从可重集中选择最大的两个进行操作,设这两数为a,b(a>=b),操作之后的数一定是操作后集合中最大的,下一次选取的数一定是a+b和a,这就形成了一个类似于斐波那契数列的东西,矩阵乘法快速幂求前n项和即可,转移矩阵如下⎡⎣⎢100111110⎤⎦⎥⎡⎣⎢Sn−1原创 2015-02-16 16:21:13 · 518 阅读 · 0 评论 -
hdu 2037 贪心算法求解
贪心算法就是只要满足我当前利益最大化即可,所以有时候得出的结果不是最优解。一般使用贪心算法要满足两个条件:a.贪心选择性质。b.最优子结构性质。贪心选择性质:这是贪心算法与动态规划的区别。也就是说,我通过局部的最优来达到整体的最优。动态规划一般是以“自底向上的方式解决问题(如数塔问题)”,而贪心是以“自上向下的方式解决问题(如HDU2037(活动安排)“。最优子结构性质:这个性质是原创 2015-02-20 23:28:58 · 732 阅读 · 0 评论 -
hdu 1204 吃糖果
原题地址:http://acm.hdu.edu.cn/showproblem.php?pid=1205鸽巢原理:把最多的那种 M(共计max个) 摆成一列,产生max-1个间隔,对于M来说,其他的糖果都是异类 (共计 sum-max个),可以用来填充间隔,但是如果sum-max=max-1时,M的间隔一定能被填满 printf("Yes\n");注意sum原创 2015-02-20 14:57:31 · 636 阅读 · 0 评论 -
hdu 1050 最大重叠数(贪心)
原题地址:点击打开链接题目大意:在走廊间移动椅子,每次只能移动一个,无论在任何两个房间之间移动都要花费10min,求移动所有椅子所用掉的最短时间。解析:这题基本是求一个最大重叠数的问题,当然用贪心也可以解决。/* Name: hdu 1050 Copyright: Author: Date: 15/2/21 22:28 Descripti原创 2015-02-21 22:34:23 · 718 阅读 · 0 评论 -
hdu 1021 (找规律题)
原文地址链接:http://acm.hdu.edu.cn/showproblem.php?pid=1021我们可以知道公式 (a+b)%c=(a%c+b%c)%c然后 从F(0)=7 F(1)=11开始 我们只要看每一个数对3取余的结果就好了设G(X) = F(X)%3那么就有 G(0)=1,G(1)=2 G(N)=(G(N-1)+G(N-2))%3然后把前面几项你原创 2015-02-19 21:48:38 · 667 阅读 · 0 评论 -
HDU5170 GTY's math problem
原文地址:http://acm.hdu.edu.cn/showproblem.php?pid=5170这题主要的难点感觉在于求幂后数的大小很难得到,如果采取暴力求解的话,会很麻烦,还不一定可以算出来,开始尝试用快速幂和大数求幂,但是都以失败告终。其实还有一种更为巧妙的办法那就是取对数比较。因为log(ab)=b∗log(a),所以只需比较 b*log(a)与c*log(d)就可以了具体代码如原创 2015-02-07 22:59:08 · 720 阅读 · 0 评论 -
hdu 5182 PM2.5
原文链接地址主要需要灵活运用sort()函数,没有什么太大的难度。#include#include#include#includeusing namespace std;struct node{ int first; int second; int flag;}a[105];bool cmp(node a, node b){ int a1 =原创 2015-03-08 23:21:08 · 660 阅读 · 0 评论 -
BC 34# 1001 Go to movies
简单的模拟#include#include#includeusing namespace std;int a[105], b[105], f[105];bool cmp(int a, int b){ return a < b;}int main(){// freopen("E:\input.txt", "r", stdin); int m原创 2015-03-21 19:55:14 · 831 阅读 · 0 评论 -
hdu 2084 数塔问题
原文地址数塔问题: 9 12 15 10 6 8 2 18 9 5 19 7 10 4 16 有形如图所示的数塔,从顶部出发,在每一结点可以选择向左走或是向右走, 一直走到底层,要求找出一条路径,使路径上的值最大。 这道题如果用枚举法,在数塔层数稍大的情况下(如40),则需要列举出的路径条数将是一个非常庞大的数目。 如果用贪心法又往往得不到最优解。 在用动态规划考虑数塔问题时可以自原创 2015-03-29 10:11:24 · 961 阅读 · 0 评论 -
寒假集训3 a 斐波拉契 大数相加
题目链接解析:主要还是简单大数相加#include#include#includeusing namespace std;#define ll long long#define MAX 205int f[MAX][MAX];//char f[MAX][MAX];char s[MAX];int main(){// freopen("E:\in原创 2016-02-01 21:09:24 · 447 阅读 · 0 评论 -
寒假集训3 c 求N个数中 取两个数的最大公约数 hdu 5207
题目链接Problem DescriptionPick two numbers ai,aj(i≠j) from a sequence to maximize the value of their greatest common divisor. InputMultiple test cases. In the first line there is an原创 2016-02-04 13:41:20 · 513 阅读 · 0 评论 -
HDU 5625 Clarke and chemistry 模拟
Clarke and chemistryTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 145 Accepted Submission(s): 75Problem DescriptionClarke is a原创 2016-02-14 10:16:08 · 540 阅读 · 0 评论 -
寒假集训四之判断长方形问题 hdu5258 暴力枚举
数长方形Problem Description小度熊喜欢玩木棒。一天他在玩木棒的时候,发现一些木棒会形成长方形。小度熊可能是处女座吧,他只会将木棒横竖摆放,这样会形成很多长方形。现在给你一些横竖摆放的木棒,请你帮小度熊数一数形成了多少个长方形。为了简化题目,一个木棒的端点不会在另一个木棒上,也就是说,木棒的端点不会在长方形上。Input第一行一个整数T,表示T组数据,不超过100组。每组数据中,第一原创 2016-02-22 17:48:06 · 568 阅读 · 0 评论 -
hdu 1312 DFS深度搜索典型例题
题目链接Problem DescriptionThere is a rectangular room, covered with square tiles. Each tile is colored either red or black. A man is standing on a black tile. From a tile, he can move to one of f原创 2016-03-18 20:37:27 · 1043 阅读 · 0 评论 -
hdu 4941 Magical Forest(STL之map应用)
STL之map应用原创 2016-03-19 09:57:41 · 509 阅读 · 0 评论 -
hdu 5538 House Building 巧妙利用数组来模拟(2015ACM/ICPC亚洲区长春站-重现赛 )
原题链接源代码:#include#include#includeusing namespace std;#define N 55#define M 55int c[N][M];int main(){ // freopen("E:\input.txt", "r", stdin); int t; int i, j; int n, m;原创 2015-11-13 11:25:17 · 568 阅读 · 0 评论