10 2015 档案
摘要:#include#include#include#includeusing namespace std;const int maxn=5000+10;int n,m,X1,Y1,X2,Y2;int U[maxn],L[maxn];int ans[maxn];int Ans[maxn];bool fl...
阅读全文
摘要:简单计算几何,用叉积判断点是否在四边形内部。#include#include#include#includeusing namespace std;const int maxn=5000+10;int n,m,X1,Y1,X2,Y2;int U[maxn],L[maxn];int ans[maxn]...
阅读全文
摘要:水题#include#include#include#include#includeusing namespace std;vector g[30];int n,m;char s[200000+10],ans[200000+10];int k[30];char t1[5],t2[5];void in...
阅读全文
摘要:水题#include#include#include#includeusing namespace std;int main(){ double l,a,b; while(~scanf("%lf%lf%lf",&l,&a,&b)) { printf("%.4lf\n"...
阅读全文
摘要:坑点比较多的一个题目#include#include#include#includeusing namespace std;long long z[100],f[100];int T,N;int totz,totf,tot0;long long ans,x;int main(){ scanf...
阅读全文
摘要:二分答案 + 2-SAT验证#include#include#include#include#include#includeusing namespace std;const int maxn=60000+10;int N,M;stackS;vectorG[maxn];vectorFG[maxn];...
阅读全文
摘要:2-SAT,拆成六个点。#include#include#include#include#include#includeusing namespace std;const int maxn=60000+10;int T,N,M;stackS;vectorG[maxn];vectorFG[maxn];...
阅读全文
摘要:2-SAT,不要所有位置全部建好边再判断,那样会MLE的。正解是,每一位建好边,就进行一次2-SAT。#include#include#include#include#include#includeusing namespace std;const int maxn=1000+10;int N;in...
阅读全文
摘要:二分答案 + 2-SAT验证,判断正方形是否相交写起来有点烦,思路还是挺简单的。#include#include#include#include#include#includeusing namespace std;const int maxn=1005;struct Point{ doubl...
阅读全文
摘要:2-SAT 裸题,搞之#include#include#include#include#include#includeusing namespace std;const int maxn=2000+10;int N,M;char s1[100],s2[100];stackS;vectorG[maxn...
阅读全文
摘要:2-SAT简单题,判断一下两个开区间是否相交#include#include#include#include#include#include#includeusing namespace std;const int maxn=2000+10;int N,M;struct Time{ int S...
阅读全文
摘要:2-SAT简单题。位运算写的时候忘记加括号WA了一发....#include#include#include#include#include#include#includeusing namespace std;const int maxn=2000+10;int N,M;char s[1000];...
阅读全文
摘要:二分答案+ 2-SAT验证POJ 稳过,HDU C++ 超时,G++ 550ms左右AC#include#include#include#include#include#includeusing namespace std;const int maxn=1000+10;int N,A,B;int l...
阅读全文
摘要:The 2015 China Collegiate Programming Contest2015第一届中国大学生程序设计竞赛 F题本质就是求单源最短路!注意会爆int对于每一个村庄i,其实就是花费c[i],把一个人从y[i]转移到x[i];如果一张图中,不存在w[i]==2的节点,那么花费肯定是0...
阅读全文
摘要:二分答案 + 2-SAT判断#include#include#include#include#includeusing namespace std;const int maxn=8000+5;int M,N,T;int ans;int L,R,Mid;int a[10010],b[10010],c[...
阅读全文
摘要:2-SAT验证 + 二分半径#include#include#include#include#includeusing namespace std;const int maxn=8000+5;int M,N;double X1[maxn],Y1[maxn],X2[maxn],Y2[maxn];int...
阅读全文
摘要:2-SAT,判断任意两条线段是否内部互斥或者外部互斥就可以建图了。#include#include#include#include#includeusing namespace std;const int maxn=8000+5;int M,N;int L[maxn],R[maxn];struct ...
阅读全文
摘要:2-SAT,直接选择新娘一侧的比较难做,所以处理的时候选择新郎一侧的,最后反着输出就可以。A和B通奸的话,就建边 A->B'以及B->A’,表示 A在新郎一侧的话,B一定不在;B在新郎一侧的话,A一定不在。然后再把新郎的mark标记为1,表示新郎一定选择。#include#include#inclu...
阅读全文
摘要:2-SAT,输出字典序最小的解,白书模板。//TwoSAT输出字典序最小的解的模板//注意:0,1是一组,1,2是一组.....#include#include#include#include#includeusing namespace std;const int maxn=8000+5;int ...
阅读全文
摘要:2-SAT,根据题意建好图,求一下强联通分量,判断一下就可以了#include#include#include#include#include#includeusing namespace std;const int maxn=6005;int T,M;vectorG[maxn];vectorFG[...
阅读全文
摘要:2-SAT入门题,强联通分量缩点之后,如果夫妻位于同一强联通分量,则无解。#include#include#include#include#include#includeusing namespace std;const int maxn=2005;int N,M;int A1,A2,C1,C2;v...
阅读全文
摘要:先观察一下数据范围0 #include#include#include#includeusing namespace std;int T;int MOD;long long a[1000000+5];long long ans;char s[1000];int Min;int n;int main(...
阅读全文
摘要:水题#include#include#include#includeusing namespace std;int T;int a,b,c,d;int gcd(int a,int b){ int t; while(b) { t = a%b; a = b;...
阅读全文
摘要:1#include#include#includeusing namespace std;int main(){ double k,p,n; while(~scanf("%lf%lf",&n,&p)) { k=pow(p,1/n); printf("%....
阅读全文
摘要:ZOJ Monthly, October 2015 K题二分答案+验证#include#include#include#include#includeusing namespace std;const double pi=3.1415926535898;const int maxn=100000+1...
阅读全文
摘要:The 2015 ACM-ICPC China Shanghai Metropolitan Programming Contest2015ACM-ICPC上海大都会赛 签到题#include#include#include#includeusing namespace std;const int m...
阅读全文
摘要:简单的几何题目点(a,b)关于直线Ax+By+C=1对称点的公式#include#include#include#includeusing namespace std;double k;double X1,Y1,X2,Y2,X3,Y3,X4,Y4;int T;double a,b,c;int mai...
阅读全文
摘要:公式转化+二分答案首先,把题目中给的等式转化一下,变成了这个样子。等式右边的值是可以求出来的。ln(x)/x的大致图像是这样的那么只要对[0,e]和[e,+∞]分别进行二分答案即可。#include#include#include#includeusing namespace std;double ...
阅读全文
摘要:用一个队列来维护每次加入一个字符,如果字符没有在队列里,那么直接入队,并且检查更新队列大小。如果加入的字符在队列里了,那么要一直弹出队首,直到弹出的字符和当前要插入的一样。#include#include#include#include#include#includeusing namespace ...
阅读全文
摘要:先找规律,发现是斐波那契数列...然后..水题..#include#include#include#include#includeusing namespace std;int f[10000];char s[10000];void init(){ f[1]=1,f[2]=1; for(...
阅读全文
摘要:扩展GCD#include#include#include#include#includeusing namespace std;__int64 extgcd(__int64 a, __int64 b, __int64 & x, __int64 & y){ if (b == 0) { x=1;...
阅读全文
摘要:一开始以为有循环节,输出了前100项发现n>40都是0。因此,水题....#includelong long a[100];const long long MOD=2009;int main(){ a[0]=1; for(int i=1; i<=40; i++) a[i]=...
阅读全文
摘要:DFS+剪枝有一些比较强大的剪枝,先对输入的价值排序,如果最小的超过了限制,直接输出0,如果价值最大的LimN个加起来没有超过限制,那也直接输出答案,剩下的就是常规的DFS。#include#include#include#includeusing namespace std;const int m...
阅读全文
摘要:二分查找+最短路二分限制高度,然后求最短路#include#include#include#include#include#includeusing namespace std;const int INF=0x7FFFFFFF;const int maxn=1000+10;struct Edge{ ...
阅读全文
摘要:乍一看是01背包,但是100000*10000的复杂度肯定是TLE的,但是(0 ≤ Vi , Ci ≤ 10),所以最多也只有100种物品,转化成多重背包去做。#include#include#includeint N,C,vv,cc;int g[15][15];char s[100];int w[...
阅读全文
摘要:最小表示法+Map或者字典树,最小表示法找了个模板,还没学习呢...#include#include#include#include#include#includeusing namespace std;mapm;int n;char s[10010][110];char t[110];int ge...
阅读全文
摘要:脑洞题。http://blog.csdn.net/dgq8211/article/details/7748078#include#include#include#includeusing namespace std;struct abc{ int A,B;}x[100010];int T,N;...
阅读全文
摘要:无向图的最小割。套了个模板。#include#include#include#includeusing namespace std;#define MAXN 555#define inf 11){ int k=0,pre=0;//pre用来表示之前加入A集合的点,我们每次都以0点为第一...
阅读全文
摘要:无向图最小割,Stoer Wanger算法。先找了个模板,日后再学习吧...#include#include#include#includeusing namespace std;#define MAXN 555#define inf 11){ int k=0,pre=0;//pre用...
阅读全文
摘要:SPFA最长路,思路如下:先对题目中给出的每条边建边,权值为转化率;增加一个终点S,每个节点到S建边,权值为该物品的单价。假设X物品最终转化为了Y物品,那么转化之后得到的钱就是 W[x]*转化率1*转化率2*转化率3*转化率4*.....*P[Y]现在我们关注转化率1*转化率2*转化率3*转化率4*...
阅读全文
摘要:Map水过去了#include#include#include#include#include#includeusing namespace std;mapm;vectorb;int main(){ int n; while(~scanf("%d",&n)) { m....
阅读全文
摘要:经典DP#include#include#include#includeusing namespace std;const int INF=0x7FFFFFFF;int T;int n;int a[100000+10];int sum[100000+10];int L[100000+10],R[10...
阅读全文
摘要:水题#include#include#include#includeusing namespace std;int T;int n,flag=0;int d[1000];int tot;int main(){ scanf("%d",&T); while(T--){ f...
阅读全文
摘要:一般图的最大匹配+枚举 带花树开花算法#include #include #include #include using namespace std;const int N = 250;// 并查集维护int belong[N];int findb(int x){ return belong[...
阅读全文