摘要:/*poj1149PIGS每个顾客分别用一个节点来表示。 对于每个猪圈的第一个顾客,从源点向他连一条边,容量就是该猪圈里的猪的初始数量。如果从源点到一名顾客有多条边,则可以把它们合并成一条,容量相加。 对于每个猪圈,假设有 n 个顾客打开过它,则对所有整数 i ∈ [1, n),从该猪圈的第 i 个顾客向第 i + 1 个顾客连一条边,容量为 +∞。 从各个顾客到汇点各有一条边,容量是各个顾客能买的数量上限。 */View Code #include<iostream>#include<queue>#include<algorithm>using names
阅读全文
摘要:View Code #include<iostream>#include<algorithm>using namespace std;int maxn,ans;int p[]={2,3,5,7,11,13,17,19,23};int n;void DFS(int cnt,int num,int pi,int lim){ if(num>maxn){maxn=num,ans=cnt;} else if(num==maxn&&cnt<ans)ans=cnt; int P=p[pi]; for(int i=1;i<=lim;i++,P*=p[p
阅读全文
摘要:View Code #include<iostream>#include<algorithm>using namespace std;#define MAXN 1111int u[6*MAXN],v[6*MAXN],head[MAXN],next[6*MAXN],U[6*MAXN],V[6*MAXN];int DFN[MAXN],LOW[MAXN],instack[MAXN],Stap[MAXN],ID[MAXN],In[MAXN];int Dindex,Stop,Bcnt;int cas,n,m,num;void tarjan(int i)//缩点{ int j; D
阅读全文
摘要:/*poj2253Frogger题意:青蛙要通过到石头到达终点 要达到终点最小步幅不能小于多少dijkstra*/#include<iostream>#include<algorithm>#include<queue>#include<cmath>using namespace std;#define MAXN 1111#define INF 100000000pair <double,int> pii;double x[MAXN],y[MAXN],d[MAXN];int inq[MAXN];int n;double DIS(int
阅读全文
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=4104View Code /*hdu4014Discount给出N的数字 求不能由这个N个数字组合出的最小的数思路:首先思考:怎样给出N个数字 使可以组合出最多的连续的数字1 2 4 8 16...2^n联想 二进制 上面的数可以组合出1~2^(n+1)内的任何数上面的情况已经是最稀疏的数字给出了,a1,a2..aM若密一些,则一定表示出sum[M]内的数字归纳法:a[M+1]=m,则可以表示的数字 增加了[sum[M]+(m-sum[M)] , sum[M]+m],所以 m<=sum[M]+1;*/#
阅读全文
摘要:import java.math.BigDecimal;import java.util.Scanner;public class Main { public static void main(String arg[]) { BigDecimal a,b,c; Scanner cin = new Scanner(System.in); while(cin.hasNext()) { a=cin.nextBigDecimal(); b=cin.nextBigDecimal(); ...
阅读全文