- 博客(21)
- 资源 (1)
- 收藏
- 关注
原创 SGU 107 数学题
题意:求平方后末尾9个数是987654321的数个数。之前做此题,竟然愚蠢到用计算器 在哪里算,还加笔算,SB啊!不知道先打印一下吗!#include#includeusing namespace std;int main(){ /* for(long long i=100000;i<999999999;i++) { if(i*i%100000
2014-03-31 12:28:36 633
原创 SGU101 求有重边的无向图欧拉迹
题意:好多木棒,俩端有数字(0--6)标记,按数字相同的端首尾相连成一条直线(木棒可以相同)。即求有重边的无向图欧拉迹。先判定是否为欧拉图,俩个条件,不说了。如果是欧拉图,输出路经。方法:dfs遍历边,回溯时候记录边,遍历过了就标记“双向边”.那么所记录的恰好是一条逆欧拉迹。不可以前进的时候标记,原因:有可能一笔画失败,导致边不连续,而回溯的时候记录,原因较复杂,大致证明如下:
2014-03-30 22:26:44 937
原创 SGU 105 数学找规律
观察一下序列,每3个数一组,第一个数余1,不能,加第二个数后整除(第二个数本身余2),第三数恰整除。一行代码的事。011011011....#includeusing namespace std;int main(){ int n; while(cin>>n) { cout<<n/3*2+(n%3==2?1:0)<<endl; }
2014-03-29 11:23:58 651
原创 sgu 102模拟欧拉函数
感觉自己弱爆了,做做SGU吧。。。#include#include //欧拉函数using namespace std;int euler(int n){ int m=n; int ans=n; for(int i=2;i<=sqrt(n*1.0);i++) //注意等于号, { if(m%i==0) {
2014-03-29 11:20:08 673
原创 ZOJ 3717 二分+2-sat判定。
好久没有2-sat了,此题当复习之用,二分求最大值+2-sat判断可行,此题主要跪于题意:The results should be rounded to three decimalplaces. You should promise that there is still no overlap for any two balloons after rounded.rounded是四舍五入
2014-03-28 12:14:25 749
原创 poj2513字典树+欧拉图判断+并查集断连通
题意:俩头带有颜色的木棒,要求按颜色同的首尾相连,可能否?思路:棒子本身是一条边,以俩端为顶点(同颜色共点),即求是否有无向图欧拉路(每条棒子只有一根,边只能用一次,用一次边即选一次棒子)。先判断图是否连通,并查集判断即可,有fa[i]==i的,表示“根”,连通图只能有一个这样根,大于1不连通。在判断欧了图是否存在,度权为偶数或者只有2俩奇数为欧拉图,否则不是。未1a原因:
2014-03-27 20:00:04 785
原创 安大校赛,“聪明的输入法”,字典树+树上状态记录
题意:每次询问:输出当前自库中以之为前缀的字符串频率最大的(相等时字典序最小)的字符串。此题开始就跪,字典树不是问题,关键是解决每次输出就是把这个串在字典树跑了一遍之后(停在某节点node),输出以node为根节点的子树中的权值最大的“终止节点”,这个问题,开始走w[u]最大的,发现不行啊(反例很多),后来发现,给每个结点加一个状态,记录以它为根的子树中,权最大的串,(当然还有权值),,
2014-03-27 16:34:14 784
原创 安大校赛/异或运算一题。
该题怒跪,原因:1,对异或运算还不太本质理解;2,异或优先级低于“!=”,“==”都不知道!!。题意:给一个矩阵,c[i][j]=(a[i]^b[j]),矩阵给定,求a[i],b[j],(a[i]的字典序最小),无解则输出。先了解下异或吧:性质1、交换律2、结合律(即(a^b)^c == a^(b^c))3、对于任何数x,都有x^x=0,x^0=x
2014-03-27 11:06:45 789
原创 hdu1251 字典树trie 模板题
//字典树模板题.题意:给一个库,每次查询,求以之为前缀的单词数量。#include#include#include#include#includeusing namespace std;int tree[500000][27];int w[500000]; //记录结点属性。int numv=0; // 全局变量,
2014-03-25 21:39:12 832
原创 SPOJ 1479 +SPOJ 666 无向树最小点覆盖 ,第二题要方案数,树形dp
题意:求一颗无向树的最小点覆盖。 本来一看是最小点覆盖,直接一下敲了二分图求最小割,TLE。 树形DP,叫的这么玄乎,本来是线性DP是线上往前\后推,而树形DP就是在树上,由叶子结点状态向根状态推。 dp[u][1/0]:表示,结点u,1:选择,0,:不选。dp值是以改点为根(目前为止,dfs遍历顺序自然决定了树的层)的已经选择点数,自然开始时不知道,对每个点,初值
2014-03-21 17:41:00 1085
原创 POJ 2125 最小点权覆盖集(输出方案)
题意:给一个图(有自回路,重边),要去掉所有边,规则:对某个点,可以有2种操作:去掉进入该点的所有边,也可以去掉出该点所有边,(第一种代价为w+,第二种代价为w-)。求最小代价去除所有边。己思:点的权被分为出入?必然拆点啊!每个点一分为二,点权:出的为出点权,入的为入点权,原来边仍在,注意,这里(1-)->(1+),不多添加边,因为相当于求新图的最小点权覆盖集(覆盖所有边,每选
2014-03-13 16:06:38 1058 2
转载 SGU 分类
http://acm.sgu.ru/problemset.php?contest=0&volume=1101 Domino 欧拉路102 Coprime 枚举/数学方法103 Traffic Lights 最短路104 Little Shop of Flowers 动态规划105 Div 3 找规律106 The Equation 扩展欧几里德107
2014-03-13 10:20:36 823
原创 太空飞行计划 最大权闭合图
选了一个点,必需选择其他点,故题意为求一个闭合图(闭合图:在一个图中,我们选取一些点构成集合,记为V,且集合中的出边(即集合中的点的向外连出的弧),所指向的终点(弧头)也在V中,则我们称V为闭合图。最大权闭合图即在所有闭合图中,集合中点的权值之和最大的V,我们称V为最大权闭合图。),构图法:取起点s,连线去所有正权的点,所有负权的点连线到t,权值为绝对值,原图的边权值为inf,s-t最大流即为
2014-03-11 21:01:01 705
原创 1.飞行员配对 二分图匹配(输出方案)/最大流斩
构建二分图,新建超级源汇点,所有边权为1,跑一次dinic,最大流即可最大匹配,关键是方案输出,遍历所有边(除去关于s,t的边),满流的边即可一组匹配。#include#include#includeusing namespace std;int n,m;int nume;int e[10000][3];int head[105];const int inf=0x3f3f3f3f;
2014-03-11 15:17:13 1165 1
原创 poj1149最大流经典构图神题
题意:n个顾客依次来买猪,有n个猪房,每个顾客每次可以开若干个房子,买完时,店主可以调整这位顾客开的猪房里的猪,共m个猪房,每个猪房有若干猪,求最多能卖多少猪。构图思想:顾客有先后,每个人想要的猪数量已经确定,显然要建汇点t,每个顾客连线t(以顾客为结点),权值为他想要买的猪数量(最多想要的都卖了,最大流之归宿,必思汇点!)然后,你想,每个顾客有先后顺序,前一个顾客开过的房
2014-03-08 20:36:36 821
原创 hdu1569 方格取数 求最大点权独立集
题意:一个方格n*m,取出一些点,要求两两不相邻,求最大和。思路:建图,相邻的点有一条边,则建立了一个二分图,求最大点权独立集(所取点两两无公共边,权值和最大),问题转化为求总权和-最小点权覆盖集(点集I覆盖所有边,点权之和最小),(对应于原题,就是求拿掉最小点集,这些点覆盖所有边,拿掉后,每个点必然两两不相邻,否则:假设u,v相邻,则u->v这条边未被覆盖,矛盾),在建立超级源汇点s,t,s连向
2014-03-08 12:07:30 996 2
转载 最大独立集 最小点覆盖 最小边覆盖 最小路径覆盖 最大团
最小边覆盖 = 最大独立集 = |V| - 最大匹配数这个是在原图是二分图上进行的最小路径覆盖和最小边覆盖不同,不要求给的图是二分图,而是要求是N x N的有向图,不能有环,然后根据原图构造二分图,构造方法是将点一分为二,如,i分为i1和i2然后如果i和j有边,那么就在i1和j2之间连一条边。由此构成二分图然后最小路径覆盖 = n-m,n为原图的点的个数,m为新造二分图
2014-03-08 09:43:03 948
原创 hdu3491最小割转最大流+拆点
题意:求最小割,即求最大流即可。此题之关键为拆点(限制在点),每条边都是双向边,注意一下。未1A原因:在拆点之后添加边的过程中,要注意,出去的是i`,进来的是i,!!所以,写addegde函数时候还是每次添加一单项边就好,之后手动调用,可以注意出入之边即可。简单题。#include//15ms#include#includeusing namespace std;int
2014-03-06 17:07:25 864
原创 hdu3987,最小割时求最少割边数
题意:求最小割时候割边最少的数量。算法:先求dinic一遍,跑出残网络,再把该网络中满流量(残量为0)的边残量改为1,其他边残量改为无穷,则再跑一次最大流,所得即为答案。(思,最小割有喝多组,但是要割边数量最少的,那么把满流的流量改为1,再跑一次最大流即可)。未1A原因:1*:添加边的时候,把双向边添加为一条(反向的流量上限==正向),这样不是不可以,但是由于后面用到要取有效边
2014-03-06 15:58:31 1329
原创 母函数初期简单入门题练习
母函数,关键是理解多项式和问题的联系,构造合适的多项式。1. hdu1557: 题意:给n个数,如果其中有m个数之和大于这n个数一半,则这m个数组成这个团体叫“获胜联盟”,这m个数中,若有一个数,去掉它,这个团体就不能成为获胜联盟了,那么这个数为关键加入者。每成为一次关键加入者,则这个数的权利加1,求所有数的权利(输出)。 思路:求出所有的数组合之和(任意几个数之和)(和小于所
2014-03-04 21:37:23 1014
原创 POJ 2396 有源有汇有上下界可行流问题
题意:给一个矩阵,给出每行每列之和,附加一些条件,如第i行第j列数必需大于(小于)多少。思路题解:矩阵模型,模拟网络流,行、列标号为结点,构图,附加s,t,s连行标(容量上下限每行之和(必需以这个值全部送过去),每个列标连向t(容量上下限每列之和)),其他每个行到列都有边(有限制的按限制来,无限制的自己添加)。由于s->网络->t,若有解,总流量f必为矩阵所有数之和,故添加边t-S
2014-03-02 10:57:49 925 2
David Silver的强化学习Reinforcement Learning课程讲义PPT
2018-05-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人