![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
ACM算法与数据结构
u014068781
这个作者很懒,什么都没留下…
展开
-
hdu 1087 Super Jumping! Jumping! Jumping!(思想题)
//hdu 1087Super Jumping! Jumping! Jumping!/*dp[][1]=dp[][0];后面归回转移到dp[][1],最后在dp[][1]数组中找答案*/#include#includeusing namespace std;const int N=1009;int n;int dp[N][2];int main(){ while(~原创 2014-08-03 17:43:28 · 313 阅读 · 0 评论 -
高精度阶乘
//高精度阶乘#include#include#includeusing namespace std;const int MAXN=3000;struct node{ int f[MAXN];//阶乘后大整数 int maxn; //位数=maxn-1;maxn=最高位数};node highPrecisionFactorial(int n){ node fd; f原创 2016-07-25 11:44:57 · 244 阅读 · 0 评论 -
11292 - Dragon of Loowater 勇者斗恶龙
Problem C: The Dragon of LoowaterOnce upon a time, in the Kingdom of Loowater, a minor nuisance turned into a major problem.The shores of Rellau Creek in central Loowater had always been a prime b原创 2014-03-17 18:50:03 · 500 阅读 · 0 评论 -
hdu 1054 Strategic Game(树形DP)
//hdu 1054 Strategic Game(树形DP)/*题意:Bob喜欢玩电脑游戏,尤其是战略游戏,但有时他找不到解决方案不够快,然后他很伤心。现在他有以下问题。他必须捍卫一个中世纪的城市,道路的形成一个树。他已经把节点的最小数量的士兵,这样他们可以观察到所有的边缘。你能帮助他吗?题解:树形DP算法,在网上看过有人用二分图;不过我翻一下记录,用树形dp的时间125ms就够了原创 2014-10-24 21:18:13 · 414 阅读 · 0 评论 -
hdu1053 Entropy(哈夫曼树应用)
//hdu Entropy(哈夫曼树应用)/*题意:(文章实在太长)直接点说就是求长度*8,哈夫曼构成长度为多大,两个相除保留一位小数题解:用优先队列结合哈夫曼算法思想*/#include#include#include#include#include#includeusing namespace std;const int N=10000;char s[N];int原创 2014-10-23 15:26:29 · 426 阅读 · 0 评论 -
hdu 1052 Tian Ji -- The Horse Racing(贪心策略)
//hdu 1052 Tian Ji -- The Horse Racing(贪心策略)/*题意:就是很经典的故事,田忌赛马;解题:(贪心策略)1.当田忌最慢的马比齐王最慢的马快,赢一场2.当田忌最慢的马比齐王最慢的马慢,和齐王最快的马比,输一场3.当田忌最慢的马和齐王最慢的马一样快, (1)当田忌最快的马比齐王最快的马快时,赢一场先。 (2)当田忌最快的马比齐王最快的马慢时,原创 2014-10-21 23:08:51 · 259 阅读 · 0 评论 -
hdu 1050 Moving Tables(暴力)
//hdu 1050 Moving Tables(暴力)/*题意:地板上有200个房间每一个在北面和南面沿着走廊。最近公司做了一个改革计划系统。改革包括房间之间移动大量的表。因为走廊狭窄,所有的表都大,只有一个表可以通过走廊。一些计划是需要提高运动效率。经理想出了以下计划:将一个表从一个房间到另一个房间可以在10分钟内完成。当移动表从一个房间i房间j,面前的空间之间的走廊的一部分i原创 2014-10-20 22:05:23 · 400 阅读 · 0 评论 -
hdu 1049 Climbing Worm (可以推出规律)
//hdu 1049 Climbing Worm (可以推出规律)/*题意:一寸虫的底部是一个n英寸深。它有足够的能量来爬你每分钟英寸,但随后必须休息一分钟之前再次攀升。在休息期间,它滑落d英寸。攀爬的过程和休息然后重复。多久前的虫子爬出好吗?我们会永远数每分钟作为一个整体的一部分,如果虫子只是达到顶端的最后的攀爬,我们将假设蠕虫让出来。题解:然后就是推出公式:ans=(n-u)原创 2014-10-20 20:55:10 · 443 阅读 · 0 评论 -
hdu 1048 The Hardest Problem Ever(水题)
//hdu 1048 The Hardest Problem Ever(水题)/*题意:就是改变大写字母。解题:很水,字母根据这个公式改一下就行啦:s[i]=(s[i]-'A'+21)%26+'A';*/#include#include#includeusing namespace std;char s[400];int main(){ while(gets(s)!=原创 2014-10-19 12:26:05 · 324 阅读 · 0 评论 -
hdu 1047 Integer Inquiry(大整数求和)
///*题意:就是大整数高精度求和:解题:不过的注意的是格式的输出。要是如果用JAVA的话估计不用几行代码。*/#include#include#includeusing namespace std;const int N=400;struct node{ int len; int num[N];};char s[N];void print(node原创 2014-10-19 10:44:22 · 463 阅读 · 0 评论 -
/hdu 1045 Fire Net(主要用到dfs)
//hdu 1045 Fire Net(主要用到dfs)/*题意:大概意思就是:给你一张n*n的图;只有城墙和空道,然后样在空地放房子,并且房子不对相对面;求最多放多少个房子。题解:dfs式暴力回溯可以:关键是怎么dfs;要在构一个数据图,为了更好的回溯,和判断这是否可以再放房子来防止相对面。*/#include#include#includeusing namespace原创 2014-10-18 21:53:54 · 335 阅读 · 0 评论 -
hdu 1046 Gridland(规律题)
//hdu 1046 Gridland(规律题)/*题意:Gridland已聘请你来设计一个程序,计算的长度最短旅行推销员的旅游城镇。在Gridland,有一个小镇的每一个点的一个矩形网格。道路运行方向的每个城镇北、西北、西部、西南部,南、东南、东、东北,只要有一个邻近的小镇那个方向。邻近的城镇之间的距离方向南——北或东——西是1单位。解题:看是题目用搜索或者最短路径的算法,其实不原创 2014-10-18 21:52:17 · 842 阅读 · 0 评论 -
hdu 1044Collect More Jewels(bfs+dfs)
//hdu 1044Collect More Jewels(bfs+dfs)/*题意:在这个问题中,你是冒险家在一个危险的地牢。你告知地牢将倒塌。你必须找到出口楼梯在给定的时间。然而,你不想离开地牢两手空空。有很多稀有的珠宝在地牢。尝试收集一些在你离开之前。一些便宜的珠宝和一些更昂贵。所以你会尽量最大化你的收藏,更重要的是,离开地牢。解题思路:就是bfs去寻找到各个点得最短路原创 2014-10-17 22:02:31 · 386 阅读 · 0 评论 -
hdu 1041 Computer Transformation(大数递推)
//hdu 1041 Computer Transformation(大数递推)/*题意:给你一个序列 1; step1之后序列变:01 step2之后序列变:1001 step3之后序列变:01101001 。。。。。 求:讲过n个step之后:有几个连续2为0的数解题: 经分析:递推(dp[][0]为几个连续2为0的原创 2014-10-15 18:59:24 · 433 阅读 · 0 评论 -
hdu 1039 Easier Done Than Said?(检查密码模拟)
//hdu 1039 Easier Done Than Said?(检查密码模拟)/*题意:给你一个密码是否接受?接受的条件:1、其中要有元音字母;2、不能连续出现3个元音字母或者3个辅音字母3、不能出现两个连续出现相同的字母:(除ee,oo之外)这题就是简单的模拟。*/#include#include#includeusing namespace std;const i原创 2014-10-14 21:55:30 · 314 阅读 · 0 评论 -
hdu 1038 Biker's Trip Odometer(简单计算题)
//hdu 1038 Biker's Trip Odometer(简单计算题)/*题意:就是给你直径、轮子所旋转圈数、时间。求所走总路程和平均速度。注意:需要单位的转换*/#include#includeusing namespace std;const double PI=3.1415927;double di,ti;//di,ti分别直径和时间int re;//旋转圈数d原创 2014-10-14 17:27:29 · 498 阅读 · 0 评论 -
hdu 1037Keep on Truckin(读懂题目,就是水水的)
//hdu 1037Keep on Truckin(读懂题目,就是水水的)#include#include#includeusing namespace std;int main(){ int a[3]; while(scanf("%d%d%d",&a[0],&a[1],&a[2])!=EOF) { bool flag=true;原创 2014-09-26 15:48:30 · 330 阅读 · 0 评论 -
/hdu 1027 Ignatius and the Princess II(阶乘进位模拟)
//hdu 1027 Ignatius and the Princess II(阶乘进位模拟)/*比如 11 221*2*3*4>=22;后面四位变动 8 9 10 11,前面按顺序输出1、(23+1*2*3-1)/(1*2*3)=4; 选第四小的 11;22%(1*2*3)=4;2、(4+1*2-1)/(1*2)=2;选择前面没选过的第2小 9;4%(2*1)=0 ;m=1*2;3原创 2014-09-24 18:40:23 · 325 阅读 · 0 评论 -
hdu Constructing Roads In JGShining's Kingdom
下面假设存在一个序列d[1..9] = 2 1 5 3 6 4 8 9 7,可以看出来它的LIS长度为5。下面一步一步试着找出它。我们定义一个序列B,然后令 i = 1 to 9 逐个考察这个序列。此外,我们用一个变量Len来记录现在最长算到多少了首先,把d[1]有序地放到B里,令B[1] = 2,就是说当只有1一个数字2的时候,长度为1的LIS的最小末尾是2。这时Len=1原创 2014-09-23 16:28:09 · 293 阅读 · 0 评论 -
hdu 圆桌问题(STL(vector)的模拟)
//hdu 圆桌问题(STL(vector)的模拟)#include #include #include using namespace std;const int N=60000;vector v;int flag[N];int n,m;int main(){ int cnt; int s; while(cin>>n>>m) { s=2*n;原创 2014-09-19 16:32:46 · 356 阅读 · 0 评论 -
hdu 3474 Necklace(单调队列)
//hdu 3474 Necklace(单调队列)/*这是我照着别人,敲单调队列*/#include#include#includeusing namespace std;const int N=1000008*2;char str[N],temp[N];int que[N],sum[N];bool flag1[N],flag2[N];int len;void monqu原创 2014-09-17 17:56:50 · 496 阅读 · 0 评论 -
二进制数中1的个数
//求二进制数中1的个数#include#include#includeusing namespace std;//===解法1:除2法============int solution1(int v){ int num=0; while(v) { if(v%2==1) { num++; }原创 2014-09-15 22:14:02 · 275 阅读 · 0 评论 -
hdu 3466 Proud Merchants(背包问题)
//hdu 3466 Proud Merchants(背包问题)#include#include#include#includeusing namespace std;const int M=5010;const int Inf=999999999;int dp[2][M];int n,m;struct node{ int pi,qi,vi;}MM[600];bo原创 2014-09-09 16:57:11 · 379 阅读 · 0 评论 -
几何知识
#include#include#include#includeusing namespace std;typedef double Type;//=========宏定义值============#define Abs(x) ((x)>0?(x):(-x))#define Sgn(x) ((x)<0?(-1):(1))#define Max(a,b) (a>b?(a):(b))原创 2014-09-07 11:01:25 · 330 阅读 · 0 评论 -
hdu 3449 Consumer(0,1背包)
//hdu 3449 Consumer(0,1背包)#include#include#includeusing namespace std;const int N=55;const int M=100008;int dp[N][M];int Max(int a,int b){return a>b?a:b;}int main(){ int n,w; int pi,原创 2014-09-06 16:00:38 · 370 阅读 · 0 评论 -
Oj评分中途结束的情况
Oj评分中途结束的情况Compile Error 编译失败Memory Limit Execeed 消耗的内存超出了使用限制Output Limit Execeed 输出的数据量超出了限制Runtime Error 违反内存存取限制,除以0、栈溢出等导致的异常结束Time Limit Execeed 超出程序执行时限Wrong Answer 答案不正确(也有格式不正确的情况原创 2014-09-05 19:07:36 · 455 阅读 · 0 评论 -
hdu 1533 Going Home(二分KM算法)
//hdu 1533 Going Home(二分KM算法)#include#include#includeusing namespace std;const int N=110;const int Inf=1<<30;struct node{ int x,y;}M[N],H[N];int mm,hh;char mp[N][N];int n,m;int w[N][N原创 2014-09-05 18:56:54 · 294 阅读 · 0 评论 -
hdu 1853 Cyclic Tour(最小费用最大流)
//hdu 1853 Cyclic Tour(最小费用最大流)#include#include#include#includeusing namespace std;const int N=100000;const int Nn=300;const int Inf=99999999;struct node{ int from,to,cap,cost,next;}edg原创 2014-09-03 18:56:59 · 211 阅读 · 0 评论 -
poj 1273Drainage Ditches(简单网络流(用dinic))
//poj 1273Drainage Ditches(简单网络流(用dinic))#include#include#include#include#includeusing namespace std;const int N=500;const int INF=1<<30;int Min(int a,int b){return a<b?a:b;}//==============原创 2014-09-02 21:56:27 · 329 阅读 · 0 评论 -
hdu 2444 The Accomodation of Students(是否二分图,找二分最大匹配数)
//hdu 2444 The Accomodation of Students(是否二分图,找二分最大匹配数)#include#include#includeusing namespace std;const int N=250;struct node{ int a[N]; int len; node():len(-1){}}nd[N];int path[原创 2014-09-01 19:48:47 · 335 阅读 · 0 评论 -
hdu 2063 过山车(二分最大匹配)
//hdu 2063 过山车(二分最大匹配)/*6 3 31 11 21 32 12 33 1用这数据分析一下算法女1 愿意跟 男1 2 3女2 愿意跟 男1 3女3 愿意跟 男1第一步,先女1和男1匹配成功第二步,女2想跟男1匹配,然而却被女1匹配了。那怎么办,寻找一下女1是否可以和其他匹配,可以寻找男2匹配,所以现在女1和男2匹配,和女2和男1匹配。(如果原创 2014-09-01 17:08:10 · 360 阅读 · 0 评论 -
hdu12306 排名(简单模拟)
//hdu12306 排名(简单模拟)#include#include#include#includeusing namespace std;const int N=1010;const int M=12;int n,m,scomax;int ansstu;int tiscore[M];struct node{ string name; int sum;}原创 2014-08-23 21:15:03 · 485 阅读 · 0 评论 -
poj 2104 K-th Number(划分线段树)
//poj 2104 K-th Number(划分线段树)#include#include#includeusing namespace std;const int MAXN=100100;int st[MAXN];//对所存序列进行排序(取基准元素所用)struct node{ int l,r;}tree[MAXN*4];//建立线段树所用空间int arrsub[3原创 2014-08-23 20:09:41 · 349 阅读 · 0 评论 -
/hdu 1030 Delta-wave (建坐标找最小步骤路径)
//hdu 1030 Delta-wave (建坐标找最小步骤路径)#include#include#include#includeusing namespace std;struct node{ int mid,right,left;//mid就是正的层坐标,right就是右的坐标,left就是左的坐标};node coordinate(int n){ nod原创 2014-08-19 21:44:13 · 352 阅读 · 0 评论 -
poj 3744 Scout YYF I(概率dp+矩阵快速幂)
//poj 3744 Scout YYF I(概率dp+矩阵快速幂)#include#include#includeusing namespace std;const int N=100;int md[N];//地雷的位置double p;//概率int n;//地雷的个数double ans;struct Ma{ double m[2][2];}temp1;M原创 2014-08-15 20:42:23 · 331 阅读 · 0 评论 -
hdu Max Sum Plus Plus(动态规划+分段最大子段和)
//hdu Max Sum Plus Plus(动态规划+分段最大子段和)#include#includeusing namespace std;#define N 1000000+10#define INF 0x7fffffffint dp[N];int mmax[N];//mmax[i]前i个的最大子段和int a[N];int Max(int a,int原创 2014-08-15 14:47:48 · 452 阅读 · 0 评论 -
hdu 1249 三角形(规律题)
//hdu 1249 三角形/*一个三角形两个面两个三角形八个面递推公式:f(n)=f(n-1)+6*(n-1);直接公式:f(n)=3*n*(n-1)+2;*/#include#include#includeusing namespace std;int main(){ int t; long long n; cin>原创 2014-08-14 19:14:43 · 459 阅读 · 0 评论 -
hdu 1023 Train Problem II(组合+大整数)
//hdu 1023 Train Problem II(组合+大整数)//卡特兰数列//另类递归式:h(n)=h(n-1)*(4*n-2)/(n+1);//该递推关系的解为:h(n)=C(2n,n)/(n+1) (n=1,2,3,...)#include#include#includeusing namespace std;const int N=109;struct bignu原创 2014-08-13 17:22:57 · 292 阅读 · 0 评论 -
hdu1076 Train Problem I(栈和队列问题)
//hdu1076 Train Problem I(栈和队列问题)#include#include#include#includeusing namespace std;char a[100],b[100];int n;queue ans;stack train;int main(){ while(cin>>n) { cin>>a>>b;原创 2014-08-13 14:37:41 · 337 阅读 · 0 评论 -
hdu 1028 Ignatius and the Princess III(一个数加法有几种)
//hdu 1028 Ignatius and the Princess III(一个数加法有几种)#include #include #include using namespace std;const int M = 129;long long df[M][M];//============================/*df[i][j]二维数组数组i存取所要得的数据,j原创 2014-08-04 20:14:16 · 359 阅读 · 0 评论