10 2014 档案
摘要:#include#include#include#define N 51000int cmp(const void *a,const void *b) {return *(int *)a-*(int *)b;}int a[N];int sum[N];double all[N];double ss(...
阅读全文
摘要:转载:http://blog.csdn.net/me4546/article/details/6662959加颜色的太棒了!!!在网上看到的一句话恍然大悟啊,建立一个最小割模型之后,假设x点与源点是连着的,说明你是把x点给取到手了,不连,说明你是把x点去除,之前一直不太明白边的容量是怎么来确定的,现...
阅读全文
摘要:转自:http://hi.baidu.com/czyuan_acm/blog/item/d0bf7a439d90d21b72f05d69.html1.如果要将一个大数以2进制形式读入 可以使用cin.nextBigInteger(2);当然也可以使用其他进制方式读入;2.如果要将一个大数转换成其他进...
阅读全文
摘要:转载地址:http://blog.csdn.net/qq172108805/article/details/7603351/*2-sat问题,题意:有对情侣结婚,请来n-1对夫妇,算上他们自己共n对,编号为0~~n-1,他们自己编号为0所有人坐在桌子两旁,新娘不想看到对面的人有夫妻关系或偷奸关系,若...
阅读全文
摘要:/*思路:http://blog.csdn.net/string_yi/article/details/12686873hdu 1814 输出字典序最小的2-sat*/#include#include#include#define N 16100#define NN 210000struct ...
阅读全文
摘要:/*二分+2-sat题意:在一个二维平面上给你n个炸弹,和2*n个位置,每一行的两个位置只能有一个放炸弹现在炸弹爆炸有一个半径,当炸弹爆炸时两个炸弹的半径化成的圆不能相交,求最大半径二分半径,每次如果一个炸弹可放的两个位置中的一个与其他位置有矛盾,就进行建边,最后判断是否存在这样一组解即可。*/#i...
阅读全文
摘要:转载:http://blog.csdn.net/luyuncheng/article/details/15172827此题好纠结啊。。。其实2-sat关键是建边此题网上好多题解都是直接说了建边而且建边完全没有解释清楚,说了的也都是模模糊糊完全不能让人信服啊啊啊啊反正我是没有找到一个能让我完全理解的索...
阅读全文
摘要:/*二分+枚举枚举k会超时,枚举r还要优化,有可能会超64*/#include#include#define ll __int64#define inf 1000000000000#define ii 1000000000000000000ll endd,enddk,enddr;void upda...
阅读全文
摘要:转载:http://yzmduncan.iteye.com/blog/1740520例:ZOJ3645题意:高斯消元模板题(浮点型)/**高斯消元求解线性方程组.*/#include #include #include #include #include using namespace std;//...
阅读全文
摘要:线性独立:一组向量,如果其中的一个向量能用别的向量的线性组合的形式表示出来,则这组向量是线性相关的;否则向量组就是线性无关的。秩:在线性代数中,一个矩阵A的列秩是A的线性獨立的纵列的极大数目。类似地,行秩是A的线性獨立的横行的极大数目。矩阵的列秩和行秩总是相等的,因此它们可以简单地称作矩阵A的秩。通...
阅读全文
摘要:/*poj 2096第一道概率dp看别人的思路,不过总算理解为什么求期望从后往前了地址:http://blog.csdn.net/morgan_xww/article/details/6774708*/#include#include#define N 1100double dp[N][N];in...
阅读全文
摘要:#include"string.h"#include"stdio.h"#include"iostream"#include"queue"#include"stack"#define M 10009#define N 100009#include"stdlib.h"#include"math.h"#d...
阅读全文
摘要:转载地址:http://blog.csdn.net/xdu_truth/article/details/8104721题意:题给出一个无向图和一个源点,让你求从这个点出发到某个点最大流的最小值。由最小割最大流定理,最全局最小割就可以了,但是因为我没有模版所以这题就悲剧了……之前找到了一个模版改半天没...
阅读全文
摘要:#include#include#include#define inf 0x3fffffff#define N 1100struct node {int l,r;}f[N];int ff[N];double d;int Min(int aa,int bb) {return aa>bb?bb:aa;}...
阅读全文
摘要:/*看别人的的思路搜索搜不出来我太挫了状态压缩枚举+好的位置*/#include#include#define N 20int lower[N];char s[N];int len;int judge(int deng,int l,int r) { int i,f1,f2;int sum1,sum...
阅读全文
摘要:转载:http://blog.csdn.net/qinzhenhua100/article/details/39716851二种操作,一种更新结点值,一种更新路径值,最后输出更改后的结点值和路径值。对于区间[a,b],区间的每个值加上c,可以用一个数组标记,ans[a]+=c,ans[b+1]-=c...
阅读全文
摘要:/*解:标记区间端点,按深度标记上+下-。然后用线段树维护求出最小的,再将它映射回来*/#pragma comment(linker, "/STACK:102400000,102400000")#include#include#include#include#includeusing namespa...
阅读全文
摘要:/*刚开始我考虑0的情况,想将他剔除就将lcmn设为-1,这样还要判断0和lcmn是-1的情况很麻烦而且但是一直出错后来觉得不用管0的情况就行了,可以认为符合。解:将lcmn离散化,因为1-9的公倍数必是2520的因子并且只有48个所以用一个数组离散化,记忆的时候直接调用离散数组即可因为一个数的所有...
阅读全文
摘要:#include#include#define N 20#define ll __int64ll dp[N][N];//最多记忆400种情况ll digit[N];ll dfs(ll len,ll cnt,ll ok) { if(!len) return cnt; if(!ok&&dp[len][c...
阅读全文
摘要:/*数位dp水题开两维一个记录长度,一个记录上一个数*/#include#include#define N 13int dp[N][N];int digit[N];int dfs(int len,int cnt,int ok) { if(!len)return 1; if(!ok&&dp[len]...
阅读全文
摘要:/*数位dp题意:找到1-n之间包含13这个子串并且能够整除13的数解:刚开始dp[N][N][2]这里的2用来记录是否为13表示当前位是否为13,我把上一位为1当前位为13和上一位部位1这种情况在数组中没有记录。*/#include#include#define N 14int dp[N][N][...
阅读全文
摘要:转载:http://blog.csdn.net/wdcjdtc/article/details/39177905#include"cstdlib"#include"cstdio"#include"cstring"#include"cmath"#include"queue"#include"algor...
阅读全文
摘要:/*题意:求出p-q的第j个nya数数位dp,求出p-q的所有nya数的个数很好求,但是询问求出最终那个第j个值时是我不会求了看了下别人的思路具体就是把p-q的第j个转化成0-q的第low+j个(其中low为小于等于p的nya数)枚举q的每一位数字,枚举位数值并进行比较直至求出每一位的值。经典好题,...
阅读全文
摘要:/*题意:给你一些节点和一些边,求最短路径树上是k个节点的最长的路径数。解:1、求出最短路径树--spfa加记录 2、树上进行操作--树的分治,分别处理子树进行补集等运算*/#include#include#include#include#include#include#define ll _...
阅读全文
摘要:iter=data.erase(iter);删掉转载:http://www.cnblogs.com/cobbliu/archive/2012/05/21/2512249.htmlSTL中的每个算法都非常精妙,接下来的几天我想集中学习一下STL中的算法。 ForwardIter lower_boun...
阅读全文
摘要:http://blog.csdn.net/niushuai666/article/details/6734403函数lower_bound()在first和last中的前闭后开区间进行二分查找,返回大于或等于val的第一个元素位置。如果所有元素都小于val,则返回last的位置举例如下:一个数组nu...
阅读全文
摘要:/*给你n个数,让你构建一个哈弗曼树,求哈弗曼编码的长度解:就是求除了叶子节点以外的所有节点的权值和*/#include#includeusing namespace std;typedef long long inta;struct node{ inta weight; bool operator...
阅读全文
摘要:/*数位dp,记忆化搜索写法注意memset(dp,-1,sizeof(dp))是放在外面的,这样保证每次搜索时存的值满足下一次也可以用;如果放在里面就会超时每个长度有10000种状态*/#include#include#define N 20int len,digit[N],dp[N][1000...
阅读全文
摘要:/*状压dp刚开始&写成&&看了好长时间T0T.状态转移方程 dp[i][k][j]=Max(dp[i][k][j],dp[i-1][l][k]+num[i][j]);(第i行的第j个状态有上一行的第k个状态得到) num[i][j]有两个功能,第一:判断第i行第j个状态是否合法 ...
阅读全文
摘要:/*树的分治因为树的点权值可达到10^15,注意手动扩栈,还有int64题意:给你一棵树,给你一些素数,给你每个点一个权值且每个权值均可由这些素数组成。现在定义任意任意两点的价值为他们路径上的权值相乘。求这样的点对的权值为立方数的个数解:如果直接求得话会超int64,不可行由立方数的性质可得,一个数...
阅读全文
摘要:/*数位dp用记忆化搜索写很清爽啊!不用推状态转移方程good。开一个二维数组用来储存前len状态对10取余,有10种状态0-9;然后直接过一遍就行了*/#include#include#define ll __int64#define N 20ll digit[N],dp[N][11];ll d...
阅读全文
摘要:/*记忆化搜索,第二维判断是否是6*/#include#include#define N 9int dp[N][2],digit[N];int dfs(int len,int cnt,int ok) {//cnt代表是否是6,ok代表前一个是当前为最大值,并且当前也是最大值 if(!len)ret...
阅读全文
摘要:/*啊啊啊啊啊啊啊本题证明一个问题,在实际应用中sort比qsort块还有memset这类初始化能不加尽量别加,很浪费时间原来的程序把qsort该成sort,去掉一个无用memset就a了时间不到一半题意:和poj1741差不多,不过本题求的是dis[i]+dis[j]==dis[k];*/#inc...
阅读全文
摘要:/*树的分治题意:求树上两点间的距离#include#include#define N 11000#define inf 0x3fffffffstruct node{int u,v,w,next;}bian[N*4];int head[N],yong,num[N],ma,minn,m,nn,vis...
阅读全文
摘要:树的重心定义为:找到一个点,其所有的子树中最大的子树节点数最少,那么这个点就是这棵树的重心,删去重心后,生成的多棵树尽可能平衡. 实际上树的重心在树的点分治中有重要的作用, 可以避免N^2的极端复杂度(从退化链的一端出发),保证NlogN的复杂度, 利用树型dp可以很好地求树的重心/*求树的重心,...
阅读全文
浙公网安备 33010602011771号