关闭

[置顶] 图论总结(持续更新)

图论总结 二分图最大匹配 km最大权最小权 最大流 最小费用最大流 强联通分量 割点点双联通 割边边双联通 最大团 带权并查集 图论总结二分图最大匹配int match[MAXN]; bool vis[MAXN]; bool dfs(int u) { for(int v = 1; v <= b; ++v) { if(!vis[v]&&!tu[u][v])...
阅读(97) 评论(0)

[置顶] 数论总结(持续更新)

数论总结欧拉定理aφ(n)≡1(modn)a^{\varphi(n)}\equiv 1\pmod nφ(n)\varphi(n) 为欧拉函数使用条件为gcd(a,n) = 1。欧拉降幂公式:ab≡ab%φ(n)+φ(n)(modn)(b>φ(n))a^b\equiv a^{b\%\varphi(n)+\varphi(n)}\pmod n (b > \varphi(n))求欧拉函数://直接求phi...
阅读(89) 评论(0)

[置顶] 出错总结(持续更新)欢迎提供建议

1.最大流注意点的范围,不一定是n,边的数量,尤其重要,要开双倍。...
阅读(78) 评论(0)

辛普森积分

#include #include #include #include #define eps 1e-9 using namespace std; int r1,r2; double f(double x){ return 8.0*(sqrt(r1*r1-x*x))*(sqrt(r...
阅读(21) 评论(0)

HDU 4085 斯坦纳树

近期更新可能会比较少,只会更新新的知识点,因为要尽快多刷一些题。。。。 详解请参照:详解 然后按照思路,自己搞的份模版。#include using namespace std;const int MAXN = 50+7; const int inf = 1e8; typedef long long LL; struct node { int v,w;...
阅读(48) 评论(0)

HihoCoder 1424 Asa's Chess Problem

一开始搜上下界没有见到费用流,就以为考不到,没有学。今天接着碰到了。。。 其实跟有源汇上下界最大流差不多。也是带了一些有花费的边。 对于这个题,一开始也没分析好。对于每行和每列的点,跟s相连的是已经有的黑子的数目,这是必须流的,也就是下界,上界很明显就是相同的。 然后跟e相连的是题目要求的上下界流量。然后交换怎么体现呢?题目中很亲民的给出每一对点要么行相同,要么列相同,很明显行相同,只会对列有...
阅读(146) 评论(0)

HDU-5988 Coding Contest

这个题真的又长见识了。题目要求破坏最小的概率,我们可以求出不被破坏的最大概率,因为要乘积最大,所以我们可以取对数变成加。然后跑最大费用最大流就可以了。 然后一直T到死。这里需要加一个eps剪枝,在spfa中,不然就T到死。#include #include #include using namespace std; const int MAXN =...
阅读(41) 评论(0)

HDU-4372 Count the Buildings

题意:有一系列的楼房,高度从1~n,然后从左侧看能看到f个楼房,右侧看能看到b个楼房,问有多少个方案数满足。 思路:首先就是最高的房屋,我们不管从哪看都会看到的。 那么我们把剩下的房屋分成f-1组和b-1组,也就是分别放左边和右边。每一组的情况:f-1组确保每组最高的在左边就可以。这里它的顺序其实就是任意的圆排列了。同理b-1组的每组最高的在右边就可以了。 我们知道把n个元素分成k个圆排列的方...
阅读(39) 评论(0)

二元关系最小割

Description高一一班的座位表是个n*m的矩阵,经过一个学期的相处,每个同学和前后左右相邻的同学互相成为了好朋友。这学期要分文理科了,每个同学对于选择文科与理科有着自己的喜悦值,而一对好朋友如果能同时选文科或者理科,那么他们又将收获一些喜悦值。   作为计算机竞赛教练的scp大老板,想知道如何分配可以使得全班的喜悦值总和最大。 Solution因为只有两种选择,并且选择之间有关系,我们...
阅读(62) 评论(0)

poj2396 Budget

有源汇上下界网络流问题。这里求的只是一个可行流。嗯,感觉没什么好说的。 注意范围。#include #include #include using namespace std; const int MAXN = 200+5; const int MAXM = 20+5; const int inf = 1e9; int n,m; int s,e...
阅读(41) 评论(0)

sgu-194-Reactor Cooling(无源汇有上下界最大流)

无源汇有上下界的最大流的求法: 简单来说就是默认每条边的流量已经流了下界的流量了。但是这时候可能流不是平衡的,对于每个点来说。这时候就需要我们调节了。 用in[i]表示流入i点的所有下界之和,out[i]表示流出i点的所有下界之和。两者的差如果大于0,表示还需要流出一些流量,那么就加边s到i,流量为两者的差。相同的,如果小于0,表示还需要流入一些流量,那么加边i到t,流量为两者差。最后边的流量的...
阅读(73) 评论(0)

2-sat总结

1.n个物品,选与不选的问题。如果i与j冲突,则建边:head[i<<1].push_back(j<<1|1); head[j<<1|1].push_back(i<<1); head[j<<1].push_back(i<<1|1); head[i<<1|1].push_back(j<<1);2.2*n个物品,只能选一个的问题。如果有冲突,则建边:if(check(i<<1,j<<1))head[i<...
阅读(53) 评论(0)

codeforces 864 F

有向图,倍增。 思路:参考大佬的题解 倍增思想,比如求s到t的道路,那么先通过反向图dfs出所有可以到达t的节点。(相当于一棵树)如果s不在其中,输出-1.然后先用正向图的边把st数组初始化一下(用字典序最小的一个)。然后把st[t][0]置为n+1.其他剩余点都保持为0.然后在倍增完成后,如果st[ s ][ TOP ] ==n+1说明x最终可以到达t并且继续走到n+1.(2^TOP>3000...
阅读(53) 评论(0)

汽车加油行驶问题

给定一个N*N 的方形网格,设其左上角为起点◎,坐标为(1,1),X 轴向右为正,Y 轴向下为正,每个方格边长为1,如图所示。一辆汽车从起点◎出发驶向右下角终点▲,其 坐标为(N,N)。在若干个网格交叉点处,设置了油库,可供汽车在行驶途中加油。汽车在 行驶过程中应遵守如下规则: (1)汽车只能沿网格边行驶,装满油后能行驶K 条网格边。出发时汽车已装满油,在起 点与终点处不设油库。 (2)...
阅读(1542) 评论(0)

HDU 6214 Smallest Minimum Cut

这个题就是求包含最少边数的最小割。比赛的时候想到的是把第一次最大流跑出来的割边集流量置1,其余的无穷大,然后再跑一次最大流,发现一直wa。 然后网上原来还有另外一种方法,那就是初始流量先乘上一个比边数大的数,然后加一,然后跑一次最大流,最后对乘上的这个数取模,得出来的就是答案。#include using namespace std; const int MAXN =...
阅读(59) 评论(0)

餐巾计划问题

关键是要想到建立二分图,这个确实一开始没想到。 重点是把当天需要的和当天剩下的给分开。这样就可以建图了。 1.对于当天需要的,跟源点连边,流量为rir_i,花费为p。跟汇点连边,花费为0,流量为rir_i。 2.对于当天剩下的,跟源点相连,流量为rir_i,因为当天的肯定会剩下的,然后对于第i天,向第i+1天连边,花费0,流量为inf。因为当天的可以放到第二天。然后对于第i天剩下的,可以向第i...
阅读(60) 评论(0)

Power OJ 魔术球问题

嗯,如果i+j为平方数的话,就代表可以连边i,j。然后放在柱子上,最多能放多少球,就是在有限的柱子内放更多的球,反过来想,对于确定的球来说,用最少的柱子其实就是求一个最小路径覆盖。那么我们去枚举答案球的个数,然后找到最小路径覆盖数刚好大于给定的n的时候,那么答案就是当时的球数-1。建图不要暴力去建,会超时。我们不难发现,当球的个数加1的时候增加的边其实不多。#include <bits/stdc++...
阅读(61) 评论(0)

F. Product transformation

嗯,序列写一写可以发现,从最后面开始相邻的差都是杨辉三角。然后走到头,前面还有剩余的话就是2m2^m。啊这里说的是系数。然后我们可以求出循环节来。求出系数来之后先模循环节。循环节其实就是ax==1modma^x == 1\mod m中的x。然后快速幂搞一下就可以了。#include using namespace std; typedef long long LL; c...
阅读(48) 评论(0)
486条 共33页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:82931次
    • 积分:5498
    • 等级:
    • 排名:第5370名
    • 原创:465篇
    • 转载:21篇
    • 译文:0篇
    • 评论:12条
    文章分类
    最新评论