![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
acm
文章平均质量分 60
nicole_yaoyao
这个作者很懒,什么都没留下…
展开
-
HDOJ water 2019
#includeint main(){int n,m,j;while(scanf("%d %d",&n,&m)!= EOF){if(n!=0 && m!=0){int arr[100] ={0};int i;for (i=0; i{scanf("%d",&arr[i]);if (m{arr[i+1] = arr[i];arr[i] = m原创 2012-01-04 17:45:36 · 519 阅读 · 0 评论 -
转】USACO 4.2.1 Ditch 网络最大流问题算法小结
通过 USACO 4.2.1 Ditch 学习一下最大流算法 。可惜它给的测试数据几乎没有任何杀伤力,后面测试时我们采用 DD_engi 写的程序生成的加强版数据。总体上来说,最大流算法分为两大类:增广路 (Augmenting Path) 和预流推进重标号 (Push Relabel) 。也有算法同时借鉴了两者的长处,如 Improved SAP 。本篇主要介绍增广路类算法,思想、复杂度及实际运行效率比较,并试图从中选择一种兼顾代码复杂度和运行效率的较好方案。以下我们将会看到,有时理论分析的时间复转载 2010-11-13 10:56:00 · 1233 阅读 · 2 评论 -
网络流题目集锦
<br />最大流 <br />POJ 1273 Drainage Ditches <br />POJ 1274 The Perfect Stall (二分图匹配) <br />POJ 1698 Alice's Chance <br />POJ 1459 Power Network <br />POJ 2112 Optimal Milking (二分) <br />POJ 2455 Secret Milking Machine (二分) <br />POJ 3189 Steady Cow Assignmen原创 2010-11-13 10:46:00 · 938 阅读 · 0 评论 -
独立集
#include"stdio.h"#include"string.h"const int MAXN = 101;char g[MAXN][MAXN], mark[MAXN],used[MAXN]; //邻接矩阵,标记删点,标点独立集int n;void dfs(){ //递归算法 int i,j; for(i = 1;i n) return; //如果图为空则返回空集原创 2010-10-30 10:21:00 · 565 阅读 · 0 评论 -
C++中标准模板库
一、STL简介 STL(Standard Template Library,标准模板库)是惠普实验室开发的一系列软件的统称。它是由Alexander Stepanov、Meng Lee和David R Musser在惠普实验室工作时所开发出来的。现在虽说它主要出现在C++中,但在被引入C++之前该技术就已经存在了很长的一段时间。 STL的代码从广义上讲分为三类:algorithm(算法)、container(容器)和iterator(迭代器),几乎所有的代码都采用了模板类和模版函数的方式,这相比于传统转载 2010-12-04 10:07:00 · 1016 阅读 · 0 评论 -
今年最想做的事~去广州参加比赛
前言 每人都应该有属于自己的大学四年,对于别人的经验与经历,请以参考的角度去读,不必学习,更不要模仿。优秀是一种习惯,牛B是一种心态。 相信我,你眼中牛人(优秀的人)大多都是装出来的。你与他在绝大多数事情上,譬如读个大学,其实原本都处于同一起跑线上,之所以今天他成为你眼中的牛人,是因为他尝试去装优秀,装久了就成了真的了,因原创 2010-01-11 19:19:00 · 1214 阅读 · 1 评论 -
转小熊的日志
<span style="font-size: medium; color: #ffffff; font-family: function() { var id = (this._style >> 24) & 0xff;">这事不能太细说,是吧 原来今天是星期五。那么昨天是星期四了。 星期四早上,九点半的时候我就走进那个嵌入式实验室会场。开始的时候只有罗老师在,过了一会,春原创 2010-01-11 20:37:00 · 514 阅读 · 0 评论 -
开始搬家啦~~HDU 题目分类
1001 这个就不用说了吧 1002 简单的大数 1003 DP经典问题,最大连续子段和 1004 简单题 1005 找规律(循环点) 1006 感觉有点BT的题,我到现在还没过 1007 经典问题,最近点对问题,用分治 1008 简单题 1009 贪心 1010转载 2010-01-11 20:04:00 · 1125 阅读 · 0 评论 -
HDU ACM 1864
#include #include #include #include using namespace std;const int Inf = 3000010;const int INF = 35;int ans[Inf], arr[INF];int q, n, m;void Zero_onepack(int k){memset(ans, 0, sizeof(ans));for(int i = 0原创 2010-02-24 09:04:00 · 695 阅读 · 0 评论 -
HDU ACM 1663
/************************************************************/#include using namespace std;long Result[10];int Num;int Pow10;static void PreCheck( int n );void Check( int a, int b );int main(){int a,原创 2010-02-23 15:36:00 · 617 阅读 · 0 评论 -
HDU ACM 2602
最简单的递归法:(该算法会超时。)// 时间复杂度是 2^n #include #include #include #include #include using namespace std; const int MAX = 1001; typedef struct { int value; int volume;原创 2010-02-23 14:49:00 · 820 阅读 · 4 评论 -
递归算法学习系列之经典背包问题
1.引子 我们人类是一种贪婪的动物,如果给您一个容量一定的背包和一些大小不一的物品,裝到背包里面的物品就归您,遇到这种好事大家一定不会错过,用力塞不一定是最好的办法,用脑子才行,下面就教您如何解决这样的问题,以获得更多的奖品。2.应用场景 在一个物品向量中找到一个子集满足条件如下 : 1)这个子集加起来的体积大小不能大于指定阀值 2) 这个物品子集加起来价值原创 2010-02-23 13:46:00 · 621 阅读 · 0 评论 -
HDU ACM 1506
#includelong n,a[100005],i,pre[100005],next[100005];__int64 max,tem_max;int main(){ while(scanf("%ld",&n),n){ for(i=0;i scanf("%ld",&a[i]); next[i]=pre[i]=i;原创 2010-02-23 14:39:00 · 737 阅读 · 2 评论 -
HDU ACM 1058
// ACM.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include#define M 5843 long a[M+4]; long min(long x,long y) { if(x else ret原创 2010-02-22 17:04:00 · 835 阅读 · 0 评论 -
[zz] 二分图匹配的匈牙利算法
二分图指的是这样一种图:其所有的顶点分成两个集合M和N,其中M或N中任意两个在同一集合中的点都不相连。二分图匹配是指求出一组边,其中的顶点分别在两个集合中,并且任意两条边都没有相同的顶点,这组边叫做二分图的匹配,而所能得到的最大的边的个数,叫做最大匹配。匈牙利算法。这个算法说白了就是最大流的算法,但是它跟据二分图匹配这个问题的特点,把最大流算法做了简化,提高了效率。匈牙利算法其实很简单,但是网上搜不到什么说得清楚的文章。所以我决定要写一下。最大流算法的核心问题就是找增广路径(augment pat转载 2010-11-20 11:09:00 · 578 阅读 · 0 评论 -
写个水题
2000#includeint main(){ int i,j;char ch[4],temp;while(scanf("%s",&ch)!=EOF){ for (i=0;i { for(j=i;j if(ch[i]>ch[j]) { temp=ch[i]; ch[i]=ch[j]; ch[j]=temp; } } printf("%c %c %c/原创 2011-06-22 20:49:00 · 550 阅读 · 0 评论 -
HDOJ water2018
#includeint main(){ int ans[60]={0}; int i,x;ans[1] = 1;ans[2] = 2;ans[3] = 3;for(i = 4; i{ans[i] = ans[i-1] + ans[i-3];}while (scanf("%d",&x)!=EOF)if(x!=0)printf("%d\n",ans[原创 2012-01-04 17:47:14 · 541 阅读 · 0 评论 -
HDOJ water 2023
#include #include int main(){ int n,m; while (scanf("%d %d",&n,&m)!=EOF){ int i,j,sc[55][10],count[55]={0},countn=0; double sumn[55]={0},summ[10]={0},psc[55]={0},csc[55]={0}; for(原创 2012-01-08 15:55:42 · 1133 阅读 · 2 评论 -
HDOJ water 2020
#include#includeint main(){int n,i,j;while(scanf("%d",&n)!=EOF){if(n!=0){int arr[100],i;for(i=0; iscanf("%d",&arr[i]);}for (i=0; i for(j=0; j {int a,b,temp;原创 2012-01-04 23:46:06 · 557 阅读 · 0 评论 -
“递归函数”入门
一、 函数即自调用函数,在函数体内部直接或间接地调用自己调用自己,即函数地嵌套调用地是函数本身。例如,下面程序中的函数fact(int n)完成的功能就是求n!#include "Stdio.h"#include "Conio.h"long fact(int n){if (n==1)return 1;return (fact(n-1))*n;}mai原创 2011-06-25 10:23:00 · 1053 阅读 · 0 评论 -
2013
#includeint main(){ int n,i,j; while(scanf("%d",&n)!=EOF) { for(j=i=1;i { j=(j+1)*2; } printf("%d/n",j); } return 0;}原创 2011-06-24 11:40:00 · 458 阅读 · 0 评论 -
2015
#includeint main(){ int n,m,key=0,temp,sum=0,aver,i,j; while(scanf("%d %d",&n,&m)!=EOF) { sum=0; key=0; if(n<m) { for(i=0;i<n;i++) { key+=2; sum+=key;原创 2011-06-25 11:26:00 · 449 阅读 · 0 评论 -
2011
#include#includeint main(){ int i,j,m,n; float sum; while(scanf("%d",&n)!=EOF) { for(i=0;i { getchar(); sum=1; scanf("%d",&m); for(j=2;j { if (j%2==0) sum-=1.0/j; else sum+=1.0/j原创 2011-06-24 10:22:00 · 427 阅读 · 0 评论 -
2015 pe
#includeint main(){ int n,m,key=0,temp,sum=0,aver,i,j; while(scanf("%d %d",&n,&m)!=EOF) { sum=0; key=0; if(n<m) { for(i=0;i<n;i++) { key+=2; sum+=key;原创 2011-06-25 12:20:00 · 549 阅读 · 0 评论 -
2012
#include#includeint isprime(int n){int i;for(i=2;i if(n%i==0) return 0;return 1;}int main(){ int x,y,i,j,m,n,key; while(scanf("%d %d",&x,&y)!=EOF&&x!=0|y!=0) { for (j=i=x;i { key原创 2011-06-24 11:06:00 · 397 阅读 · 0 评论 -
2010
#include#includeint main(){ int m,n,i,j=0,a,b,c; while(scanf("%d %d",&m,&n)!=EOF) { j=0; for (i=m;i { a=i/100; b=i%100/10; c=i%10; if (a*a*a+b*b*b+c*c*c==i) { j++; if (j==1) printf("%d原创 2011-06-24 09:24:00 · 475 阅读 · 0 评论 -
2009
#include#includeint main(){ int i,j,m; float n,result=0; while(scanf("%f %d",&n,&m)!=EOF) { result=0; for(i=0;i { result+=n; n=sqrt(n); } printf("%.2f/n",result); }原创 2011-06-24 08:33:00 · 409 阅读 · 0 评论 -
2008
#includeint main(){ int n,i,zh=0,fu=0,ling=0; float sh; while(scanf("%d",&n)!=EOF&&n!=0) { //printf("%d",n); zh=0,fu=0,ling=0; for(i=0;i { scanf("%f",&sh); if (sh>0) zh++; else if(sh原创 2011-06-23 12:48:00 · 408 阅读 · 0 评论 -
2000以后
2000#includeint main(){ int i,j;char ch[4],temp;while(scanf("%s",&ch)!=EOF){ for (i=0;i { for(j=i;j if(ch[i]>ch[j]) { temp=ch[i]; ch[i]=ch[j]; ch[j]=temp; } } printf("%c %c %c/原创 2011-06-23 12:13:00 · 415 阅读 · 0 评论 -
HDU 动态规划(46道题目)倾情奉献~ 【只提供思路与状态转移方程】
Robberies http://acm.hdu.edu.cn/showproblem.php?pid=2955 背包;第一次做的时候把概率当做背包(放大100000倍化为整数):在此范围内最多能抢多少钱 最脑残的是把总的概率以为是抢N家银行的概率之和… 把状态转移方程写成了f[j]=max{f[j],f[j-q[i].v]+q[i].money}(f[j]表示在概率j之下能抢的大洋);转载 2010-02-22 10:46:00 · 4621 阅读 · 6 评论 -
HDU ACM 1257
最少拦截系统,可以使用贪心或者动态规划 #include struct {int h; //高度bool uu; //是否可以拦截}a[1005];int main (){int n,i,num,t,max;while (scanf("%d",&n)!=EOF){ for (i=0;i { scanf("%d",&a[i].h);原创 2010-02-23 09:58:00 · 565 阅读 · 1 评论 -
动态规划法求最大子序列和
算法一:直观法,时间复杂度O(n^3)#include#includeusing namespace std;int maxsubsequencesum(const int a[], int n){ int thissum, maxsum, k; maxsum = 0; for(int i =0; i for(int j= i;j原创 2010-02-22 10:16:00 · 1360 阅读 · 0 评论 -
网络最大流量问题(数据结构实验三)
#include "stdafx.h"#include #include #include #include# define maxnum 6//图的结点个数using namespace std;class elge;class elge{public:int start;int target;int flow;operator =(elge x){start=x.start原创 2008-11-20 17:26:00 · 863 阅读 · 0 评论 -
数据结构和算法分析实验(二)
#include #include "stdafx.h"#include #include #include #include//#includeclass point{public: int x; int y; point(int a,int b); public: ~point(void);};#include原创 2008-11-05 22:31:00 · 485 阅读 · 0 评论 -
数据结构和算法分析实验(一)
#include "stdafx.h"// listttt.cpp : Defines the entry point for the console application.//这就是击鼓传花游戏,输者出局,从下家续传。但传递次数确定/*This is a standard programming project. The algorithm can be sped up by sett原创 2008-11-05 22:28:00 · 691 阅读 · 0 评论 -
ACM初赛试题(10)
Judgess Final ProblemTime Limit: 10000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 39 Accepted Submission(s): 0Problem DescriptionFor any ACM/IC原创 2008-10-19 10:53:00 · 654 阅读 · 0 评论 -
ACM初赛试题(7)
Garys CalculatorTime Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 1407 Accepted Submission(s): 305Problem DescriptionGary has finall原创 2008-10-19 10:47:00 · 467 阅读 · 1 评论 -
ACM初赛试题(6)
Find A WayTime Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 70 Accepted Submission(s): 0Problem DescriptionWell consider an interest原创 2008-10-19 10:44:00 · 570 阅读 · 0 评论 -
ACM初赛试题(5)
Essay Scoring SystemTime Limit: 10000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 112 Accepted Submission(s): 0Problem DescriptionProfessor Binn原创 2008-10-19 10:43:00 · 461 阅读 · 0 评论 -
ACM初赛试题(4)
Deciphering PasswordTime Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 2248 Accepted Submission(s): 208Problem DescriptionXiaoming has原创 2008-10-19 10:39:00 · 541 阅读 · 0 评论