HDU
smallacmer
这个作者很懒,什么都没留下…
展开
-
http://acm.hdu.edu.cn/showproblem.php?pid=2544&&最短路
水题。。。。dijstra算法。。。。#include#include#include#include#define M 99999999#define N 105#define FOR(i,s,t) for(int i=(s);i<=t;++i)using namespace std;int dist[N];int map[N][N];bool visit[N];in原创 2011-10-20 16:28:29 · 564 阅读 · 0 评论 -
http://acm.hdu.edu.cn/showproblem.php?pid=2066&&多源多点
Problem Description虽然草儿是个路痴(就是在杭电待了一年多,居然还会在校园里迷路的人,汗~),但是草儿仍然很喜欢旅行,因为在旅途中 会遇见很多人(白马王子,^0^),很多事,还能丰富自己的阅历,还可以看美丽的风景……草儿想去很多地方,她想要去东京铁塔看夜景,去威尼斯看电影,去阳明山上看海芋,去纽约纯粹看雪景,去巴黎喝咖啡写信,去北京探望孟姜女……眼看寒假就快到了,这么一大段时原创 2011-10-20 21:52:23 · 843 阅读 · 0 评论 -
http://acm.hdu.edu.cn/showproblem.php?pid=1233&&Krusal
算是水题。。。。。但自己感觉水的不太好(*^__^*) 嘻嘻……come on #include#include#include#include#define N 5005#define FOR(i,s,t) for(int i=(s);i<=t;++i)using namespace std;int n,m;int father[N];struct edge{int x,y,原创 2011-10-21 09:36:23 · 642 阅读 · 0 评论 -
http://acm.hdu.edu.cn/showproblem.php?pid=1863
这题也算是一道水题吧!我记得我以前是用Prim算法写的,现在用Kursal写一遍感觉还可以。。。。come on。。。Problem Description省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可)。经过调查评估,得到的统计表中列出了有可能建设公路的若干条道路的成本。现请你编写程序,计算出全省畅通需要的最低成原创 2011-10-21 09:55:41 · 653 阅读 · 0 评论 -
http://acm.hdu.edu.cn/showproblem.php?pid=1232&&并查集应用
水题进行时。。。。加油(*^__^*) 嘻嘻……。。。#include#include#include#include#define N 1005#define FOR(i,s,t) for(int i=(s);i<=t;++i)using namespace std;int n,m,tot;int father[N];void make_set(){ FOR(i,1,n原创 2011-10-21 09:20:08 · 1005 阅读 · 0 评论 -
http://acm.hdu.edu.cn/showproblem.php?pid=1874
今天又水了一道dijstra。。。。。。#include#include#include#include#define M 99999999#define N 205#define FOR(i,s,t) for(int i=(s);i<=t;++i)using namespace std;int dist[N];int map[N][N];bool visit[N];i原创 2011-10-21 08:59:44 · 473 阅读 · 0 评论 -
http://acm.hdu.edu.cn/showproblem.php?pid=1875
Problem Description相信大家都听说一个“百岛湖”的地方吧,百岛湖的居民生活在不同的小岛中,当他们想去其他的小岛时都要通过划小船来实现。现在政府决定大力发展百岛湖,发展首先要解决的问题当然是交通问题,政府决定实现百岛湖的全畅通!经过考察小组RPRush对百岛湖的情况充分了解后,决定在符合条件的小岛间建上桥,所谓符合条件,就是2个小岛之间的距离不能小于10米,也不能大于1000米原创 2011-10-21 20:06:45 · 614 阅读 · 0 评论 -
http://acm.hdu.edu.cn/showproblem.php?pid=1879
该题依旧是最小生成树问题,只是有一点小小的变化。。。。。做完这题,猛然发现为什么prim算法优先于Kursal了。。。。。#include#include#include#include#define N 105#define FOR(i,s,t) for(int i=(s);i<=t;++i)using namespace std;int n,m;int father[N]原创 2011-10-21 17:26:23 · 651 阅读 · 0 评论 -
http://acm.nyist.net/JudgeOnline/problem.php?pid=434
一道最小生成树的题,属于模板题,,,,月赛竟然弄了这么长时间,才AC,这道替我用的是prim算法,用krusal也可以,,, #include#include#include#define N 28#define M 99999999using namespace std;int map[N][N];int dist[N];bool visit[N];int n,m;原创 2011-10-24 20:47:39 · 453 阅读 · 0 评论 -
http://acm.hdu.edu.cn/showproblem.php?pid=1162
最小生成树,水题。。。。。#include#define N 105#define M 9999999.0#define FOR(i,s,t) for(int i=(s);i<=(t);++i)#include#include#includeusing namespace std;double map[N][N];bool visit[N];double dist[N];i原创 2011-10-28 22:00:04 · 591 阅读 · 0 评论 -
http://acm.hdu.edu.cn/showproblem.php?pid=1711
Problem DescriptionGiven two sequences of numbers : a[1], a[2], ...... , a[N], and b[1], b[2], ...... , b[M] (1 <= M <= 10000, 1 <= N <= 1000000). Your task is to find a number K which make a[K] = b原创 2011-10-30 11:10:02 · 949 阅读 · 0 评论 -
http://acm.hdu.edu.cn/showproblem.php?pid=1686
OulipoTime Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 1677 Accepted Submission(s): 646Problem DescriptionThe French author Georges Pere原创 2011-11-01 09:29:28 · 586 阅读 · 0 评论 -
http://acm.hdu.edu.cn/webcontest/contest_showproblem.php?cid=791&pid=1001&ojid=0
#include#define N 1005#define FOR(i,s,t) for(int i=(s);i<=(t);i++)using namespace std;int n,m,sum;int father[N];void make_set(){ FOR(i,1,n) father[i]=i; sum=n; } int find_set(int a)原创 2011-11-02 20:30:03 · 1060 阅读 · 0 评论 -
http://acm.hdu.edu.cn/showproblem.php?pid=3371
这是今天xd弄的一个专题,,,,很是坑爹,,,c++过了,但是g++就是过不了,,,让我纠结了半个多小时,,,悲催,,,prim算法:#include#include#define N 505#define M 99999999#define FOR(i,s,t) for(int i=(s);i<=(t);++i)using namespace std;int n,m原创 2011-11-03 18:44:26 · 803 阅读 · 0 评论 -
http://acm.hdu.edu.cn/webcontest/contest_showproblem.php?pid=1004&ojid=2&cid=963&hide=0
#include#include#define N 101#define M 99999999.0#define FOR(i,s,t) for(int i=(s);i<=(t);++i)#includeusing namespace std;double map[N][N];double dist[N];bool visit[N];struct point{ double原创 2011-11-03 19:45:33 · 1326 阅读 · 0 评论 -
矩阵问题&&http://acm.hdu.edu.cn/showproblem.php?pid=1575
一道矩阵水题,,,,主要是二分法,,,终于1A了,,,#include#include#include#define N 11#define MOD 9973using namespace std;typedef struct { int num[N][N]; }Node;Node a,b;int n,k;Node mul(Node x,Node y){原创 2011-11-25 15:35:39 · 718 阅读 · 0 评论 -
http://acm.hdu.edu.cn/webcontest/contest_showproblem.php?&&次小生成树
这是个次小生成树的题,首先介绍一下什么事次小生成树,,,就是存在有两个及以上的最小生成树,,,,这一题用krusal TLE。。。因此选用了prim算法,,,,思想就是:如果存在一个点i它的dist【i】可以由两个或两个以上的其他点更新得到,那么最小生成树肯定不唯一了,,,,法一:#include#include#define N 101#define M 99999999usin原创 2011-11-05 11:11:20 · 1185 阅读 · 0 评论 -
http://acm.hdu.edu.cn/webcontest/contest_showproblem.php?cid=963&pid=1019&ojid=1
这一题是dijstra的变种,,,用的是dijstra的思想和方法,让求的是从一点到另一点的最大的最小值,,,,一开始木有认真读题,,,贡献了5次wa,,,#include #include #includeusing namespace std;#define MAX 201#define INF 10000.0ffloat matrix[MAX][MAX];int s[MAX];原创 2011-11-04 13:19:12 · 1270 阅读 · 0 评论 -
http://acm.timus.ru/problem.aspx?space=1&num=1416&&次小生成树
这一题浪费了我不少时间啊,,,,很是伤心,,以前写过用prim添边删边的题,,于是果断安以前的方法去做结果是一个劲的wa,,,,,最后实在木办法了,就用krusal写 了一遍,结果很是给力,,过了,,Ac代码:#include#define N 250010#define M 99999999#includeusing namespace std;struct Node{in原创 2011-11-07 09:21:25 · 985 阅读 · 0 评论 -
邻接表存图。。。
#include#include#include#includeusing namespace std;#define INF 0x7FFFFFFF#define N 150000#define M 2000000typedef struct node{ int u; int len; struct node *nex;}NODE;NODE edg[M],*head[N原创 2011-11-08 13:33:17 · 565 阅读 · 0 评论 -
Bus System
这一题太蛋疼了,,,,建图太麻烦了,,,,#include#includeusing namespace std;#define M 0x7f7f7f7f7f7f7f7fLLtypedef long long LL;LL mat[105][105];LL cor[105];LL L1,L2,L3,L4,C1,C2,C3,C4;int n,m; LL change(LL x原创 2011-11-10 17:33:12 · 665 阅读 · 0 评论 -
http://acm.hdu.edu.cn/showproblem.php?pid=1004
stl map水过,,,水题继续。。#include#include#includeusing namespace std;int main(){ int n; while(cin>>n,n) { map Q; map::iterator p; for(int i=0;i!=n;++i) { string a; cin>>a; Q[a]++; }原创 2012-01-06 10:51:09 · 543 阅读 · 0 评论 -
Substrings &&http://acm.hdu.edu.cn/showproblem.php?pid=1238
话说这两天心里挺纠结的,,总是静不下心学习,,放假留校的孩纸伤不起啊!!!。。。题意:这是一道搜索入门题,就是找所有字符串共有的最长串的长度。。。先把所有字符串从小到大排序,找出最短串,然后枚举最短串,(和反转串)需要注意一点就是从长到短进行枚举,,,一旦找到就是答案。。。#include#include#includeusing namespace std;string s[1原创 2012-01-06 14:49:37 · 562 阅读 · 0 评论 -
http://acm.hdu.edu.cn/showproblem.php?pid=1010
一道DFS入门题,需要注意的是剪枝很多,,,,开始一看本以为用BFS就可以搞定,,但是测试数据就是不过,,,后来又看了看题,,原来要求的是刚好在T时间到达,而BFS求的是需要的最少时间。。。DFS找到所有情况后看是否有木有T时间到达的,,此外DFS还牵涉到回溯。。。。#include#include#includeusing namespace std;char map[9][9]原创 2012-01-06 17:39:22 · 508 阅读 · 0 评论 -
Moonfang's Birthday&&2011 Multi-University Training Contest 3 - Host by BIT
题意:有一个人要过生日了,为了给他过生日他的同伴给他对钱,,但是每个同伴的钱都不一样,但是为了尽可能的平均,让你设计一种算法,,求出在尽可能平均的情况下每人对的钱数。。思路:先把同伴拥有的钱数从小到大排序,,,每次取平均数和拥有的钱数中少的那个为该同伴最后需要对的钱数。。。。AC代码:#include#define N 10001#include#includeusing原创 2012-01-07 11:59:18 · 460 阅读 · 0 评论 -
找规律。。&&http://acm.hdu.edu.cn/showproblem.php?pid=1097
#include#includeusing namespace std;int hash[10];int main(){ long long a,b;int i; while(cin>>a>>b) { memset(hash,0,sizeof(hash)); hash[0]=a%10; for( i=1;i<11;++i) { has原创 2012-01-07 10:39:16 · 489 阅读 · 0 评论 -
74LS00 &&http://acm.hdu.edu.cn/vcontest/vtl/problem/showproblem/vtlid/3135/problemid/1004
这道题难就难在输出控制上,尤其是当输出为11时,要特别注意。。。。#include#include#includeusing namespace std;typedef struct{ int a; double val;}Node;Node s[12];char ch[10][2];bool visit[10];int main(){ int n; while(原创 2012-01-07 19:12:16 · 852 阅读 · 0 评论 -
http://acm.hdu.edu.cn/vcontest/vtl/problem/showproblem/vtlid/3135/problemid/1008
I Love You Too Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 567 Accepted Submission(s): 305 Problem DescriptionThis is a true story. A man原创 2012-01-07 19:18:50 · 587 阅读 · 0 评论 -
动态规划思想
一、动态规划的基本思想 动态规划:适用于子问题不是独立的情况,也就是各子问题包含公共的子问题,鉴于会重复的求解各子问题,DP对每个问题只求解一遍,将其保存在一张表中,从而避免重复计算。注意 :用动态规划解决问题,主要是要找到状态转移方程;二、动态规划的基本步骤: 动态规划算法通常用于求解具有某种最优性质的问题。在这类问题中,可能会有许多可行解。每一个解都对应于一个原创 2012-01-08 09:22:41 · 881 阅读 · 0 评论 -
导弹拦截二&&http://acm.hdu.edu.cn/showproblem.php?pid=1257
这一题可谓称做导弹拦截加强版。。。我写的上一篇是求一套拦截导弹装置最多能拦截导弹的个数。。这一题给你一些导弹发射的高度。。让你求出共需要多少这样的装置。。仔细想一下就会发现这两道题得解法完全一样,只是在用dp时赋予不同的含义。。和上一篇相比代码就改一个符号就ok了。。。。代码:#include#include#includeusing namespace std;int dp[原创 2012-01-08 13:01:34 · 1360 阅读 · 0 评论 -
I NEED A OFFER! &&http://acm.hdu.edu.cn/showproblem.php?pid=1203
这一题真坑爹啊!!白白耗费了我进一个小时。。。留校的孩纸伤不起啊!!!!!!动态规划入门。。。。#include#include#includeusing namespace std;double dp[10001];typedef struct{ int a; double b; }Node; Node s[1001]; int main() { int n,m;原创 2012-01-09 11:59:55 · 1522 阅读 · 0 评论 -
最大连续子序列&&http://acm.hdu.edu.cn/showproblem.php?pid=1231
Problem Description给定K个整数的序列{ N1, N2, ..., NK },其任意连续子序列可表示为{ Ni, Ni+1, ..., Nj },其中 1 例如给定序列{ -2, 11, -4, 13, -5, -2 },其最大连续子序列为{ 11, -4, 13 },最大和 为20。 在今年的数据结构考卷中,要求编写程序得到最大和,现在增加一个要求,即还需要原创 2012-01-09 18:26:23 · 1291 阅读 · 0 评论 -
Robberies&&http://acm.hdu.edu.cn/showproblem.php?pid=2955
http://acm.hdu.edu.cn/showproblem.php?pid=2955这一题算是0-1背包的变种,,通过构造背包,,来求在满足情况的条件下,背包的最大容量。。。思路:题目给出我们被抓的最大概率。即给出不被抓的最小概率,因此我们可以构造dp来存不被抓的最大概率。。以所有银行的钱为背包容量,以(1-p)表示背包的价值,从而求对应背包的最大价值。。。。#includ原创 2012-01-10 09:46:54 · 1281 阅读 · 0 评论 -
连连看
#include #include #include using namespace std;struct node{ int x, y; int t, d;};queue q;int n, m, map[1002][1002], prove;int visit[1002][1002][4]; //记录第(i,j)个点4个方向是否已走过,0为未走过。int qr原创 2012-01-10 11:51:27 · 623 阅读 · 0 评论 -
To The Max &&http://acm.hdu.edu.cn/showproblem.php?pid=1081
这道题很扯淡,,没有说有多组测试数据,却又多组测试数据,,,而且还是以输入0时为结束。。。#include#includeusing namespace std;int dp[101][101];int b[101];int main(){ int n; while(cin>>n&&n) { memset(dp,0,sizeof(dp));原创 2012-01-10 08:47:49 · 616 阅读 · 0 评论 -
Dating with girls(1)
Problem DescriptionEveryone in the HDU knows that the number of boys is larger than the number of girls. But now, every boy wants to date with pretty girls. The girls like to date with the boys with原创 2012-02-03 16:09:24 · 619 阅读 · 0 评论 -
2011 Multi-University Training Contest 1 - Host by HNU&&R(N)
算是一道水题,,这一题关键是判断好枚举的范围,,,因为要使得x2+y2=n所以对x,y的枚举只需要到sqrt(n/2)即可,,当x和y相等或者有一个为0时有4种情况,当x和y同时都为0时有且仅有一种情况,,其它只要满足情况就有8种情况,,,AC代码:#include#includeusing namespace std;int main(){ int n; while原创 2012-01-03 10:22:20 · 521 阅读 · 0 评论 -
2011百校联动“菜鸟杯”程序设计公开赛&&Cover The Enemy
今天下午又重新温习了菜鸟杯题,,发现好多题就是用枚举方法A掉的,,里面并没有夹杂太多方面的高级算法,,没想到就这题在比赛竟然好些做不出来,,看来自己做的题还是少啊!!!!!思路:这一题求最小半径平方和,先把第一个塔离敌军的营地排一下序(升序,降序都可以),然后枚举所有到第一个塔的距离,通过找第一个塔不能覆盖的敌军阵营离第二个塔最大的距离得出第二个塔的半径,,还有一点要注意就是最找离第二个塔最大原创 2012-01-02 17:15:56 · 962 阅读 · 0 评论 -
2011 Multi-University Training Contest 1 - Host by HNU&&YY's new problem
刚开始看这道题时便发现时间控制为4秒,如果按一般的方法三层for循环,,果断tle,因此想一定用到一点高级算法,,然后想到了hash表,把每次出现的数标记为1,一开始把全部数标记为0,对每次输入的数进行对称查找hash表,假设输入的数为a,如果出现hash[a-i]+hash[a+i]=1则说明一定存在,,,AC代码:#include#includeusing namespace原创 2012-01-03 14:54:30 · 533 阅读 · 0 评论 -
菜鸟杯” hdu 4151 I The Special Number
暴力预处理所有数,,然后二分查找,,查找时包含负数,,,,#include#includeusing namespace std;int a[10000000];int b[10];int main(){ int i,j; int tot=1; for(i=1;i<=10000000;++i) { memset(b,0,sizeof(b));原创 2012-01-02 21:51:33 · 795 阅读 · 0 评论