06 2018 档案
摘要:There is a company that has N employees(numbered from 1 to N),every employee in the company has a immediate boss (except for the leader of whole compa
阅读全文
摘要:题意:给一个数组序列, 数组长度为100000 两种操作: 一种操作是将某一个固定区间所有数开方(向下取整) 另一种操作是询问某个区间的所有数字之和。 由于数不超过263,因此开个七八次就变成1,由于只有开方,没有修改操作,直接暴力开方,对于Node[k].w == Node[k].r - Node
阅读全文
摘要:题意: 一条线上的点,D x是破坏这个点,Q x是表示查询以x所在的最长的连续的点的个数,R是恢复上一次破坏的点。 解析: 线段树结点 设置一个 lq记录区间左端点开始的最大连续个数, rq 记录区间右端点开始的最大的连续个数 其它和原来一样即可 看代码吧。。。 #include <iostream
阅读全文
摘要:Mayor's posters Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 74745 Accepted: 21574 Description The citizens of Bytetown, AB, could not s
阅读全文
摘要:题意: 从发货地到商家 送货 求送货花费的最小费用。。。 有m个发货地,,,n个商家,,每个商家所需要的物品和物品的个数都不一样,,,每个发货地有的物品和物品的个数也不一样,,, 从不同的发货地到不同的商家 送不同的物品 所花费的价钱 也不一样。。 解析; 建立超级源s和超级汇t 因为每个商家所需的
阅读全文
摘要:题意: 人回家,一步一块钱,有x个人,y个房子,求能回家的最大人数且使之费用最小 解析: 就是。。。。套模板,,,, 建图(⊙﹏⊙)。。。要仔细观察呐 对于人拆不拆都可以 都能过,,,,这里贴上拆开的代码。。。。
阅读全文
摘要:题意: 几种插头,每一种都只有一个,但有无限个插头转换器,转换器(a,b) 意味着 可以把b转换为a,有几个设备,每个设备对应一种插头,求所不能匹配插头的设备数量 这个题可以用二分图做 , 我用的是最大流,最后用设备数 减去 最大匹配数即可
阅读全文
摘要:题意: f个食物,d杯饮料,每个牛都有想吃的食物和想喝的饮料,但食物和饮料每个只有一份 求最多能满足多少头牛。。。。 解析: 一道简单的无源汇拆点最大流 无源汇的一个最大流,先建立超级源s和超级汇t, 把s和食物连接 权值为食物的数量1 ,饮料和t连接 权值为饮料的数量1, 因为牛只要一个就好,所以
阅读全文
摘要:题意: 剪一段丝带,对于剪完后的每一段丝带长度必须是a,b,c 输入丝带的长度 n 和 a b c 输出一个整数,代表最多能剪成多少段 样例输入 5 5 3 2 7 5 5 2 样例输出 2 2 解析: 完全背包啦。。就是让求在背包正好装满的情况下 所获取的价值(分成的段数)最大 在要装当前容量 j
阅读全文
摘要:问题 J: 天平 题目描述 天平的右端放着一件重量为w的物品。现在有n个重量已知的砝码,只允许在左端放砝码的前提下,能否通过砝码判断出物品的重量。 (注:这里假设当天平的两端重量不同时天平就会向重的一端倾斜到底!) 天平的右端放着一件重量为w的物品。现在有n个重量已知的砝码,只允许在左端放砝码的前提
阅读全文
摘要:一维 原始数组: 滚动数组: 二维 原始数组: 滚动数组: 附一个用滚动数组求的题:http://acm.hdu.edu.cn/showproblem.php?pid=1024
阅读全文
摘要:这道题其实不难。。。就是建图恶心了点。。。。emm。。。 题意: 多源多汇 + 拆边 青蛙跳柱子, 每根柱子都有一定的承载能力, 青蛙跳上去之后柱子的承载能力就会减一,跳到边界就能活 跳不到就over了,青蛙有一个最大的跳跃距离dis, 把每根柱子拆成两个点, 中间连一条边,为柱子的承载能力, 每个
阅读全文
摘要:题意:。。。。emm。。。就是一个最小割最大流,。,。。。用dinic跑一遍。。 然后让你输出割边,就是 u为能从起点到达的点, v为不能从起点到达的点 最后在残余路径中用dfs跑一遍 能到达的路标记一下 然后循环判断输出即可 还有不要忘了是正向路 所以循环时i+=2
阅读全文
摘要:You, a part-time dining service worker in your college’s dining hall, are now confused with a new problem: serve as many people as possible. The issue
阅读全文
摘要:至今了解到的。。。 1、最大流 2、最小费用最大流 3、多源多汇问题 (建立超级源 ss和超级汇tt , 然后从ss向每个源引一条有向弧,容量为无穷大,每个汇向tt引一条弧,容量为无穷大即可 ) 4、结点容量 (每个结点都有一个允许通过的最大流量) (把每个原始节点u分裂成两个u1和u2,中间连接一
阅读全文
摘要:例题:loj117 : https://loj.ac/problem/117//其实就是判断可行流后倒着求一遍最大流 #include #include #include #include #define mem(a,b) memset(a,b,sizeof(a)) using namespace std; const int maxn = 200010, INF = 0x7ffffff...
阅读全文
摘要:解析为转载 :https://www.cnblogs.com/liu-runda/p/6262832.html 博主讲的挺好的 有源汇有上下界可行流 模型:现在的网络有一个源点s和汇点t,求出一个流使得源点的总流出量等于汇点的总流入量,其他的点满足流量守恒,而且每条边的流量满足上界和下界限制. 源点
阅读全文
摘要:例题: LOJ115:https://loj.ac/problem/115 Dinic实现。。。。。sap不会写。。/(ㄒoㄒ)/~~ 模板自用:
阅读全文
摘要:#include #include #include #include #define mem(a,b) memset(a,b,sizeof(a)) using namespace std; const int maxn = 100100, INF = 0x7fffffff; int head[maxn], d[maxn], vis[maxn], p[maxn], f[maxn]; in...
阅读全文
摘要:#include #include #include #include #define mem(a,b) memset(a,b,sizeof(a)) using namespace std; const int maxn = 100100, INF = 0x7fffffff; int d[maxn], head[maxn]; int n, m, s, t; struct edge{ ...
阅读全文
摘要:OJ上的一些水题(可用来练手和增加自信) (poj3299,poj2159,poj2739,poj1083,poj2262,poj1503,poj3006,poj2255,poj3094)初期: 一.基本算法: (1)枚举. (poj1753,poj2965) (2)贪心(poj1328,poj21
阅读全文
摘要:You task is to find minimal natural number N, so that N! contains exactly Q zeroes on the trail in decimal notation. As you know N! = 1*2*...*N. For e
阅读全文
摘要:题意: 求[a,b]之间的素数的个数 数很大。。。数组开不起 所以要想到转化 因为小于等于b的合数的最小质因子 一定小于等于sqrt(b),所以只需要求出来[0,sqrt(b)]的素数 然后取倍数删去[a,b]之间的合数 就好了 那 为什么小于等于b的合数的最小质因子 一定小于等于sqrt(b)呢?
阅读全文
摘要:题意: 首先 只看第一层循环的A[0],是不是用了nk-1次 A[1]也是用了nk-1次······ 所以 第一层的sum(A[i]的和) 一共用了nk-1 所以第一层为sum * nk-1 因为又k层循环 所以全部为sum * nk-1 * k 最后不要忘了 % MOD 代码如下:
阅读全文
摘要:题意: 给出一个数x 求 x = bp 的p的最大值 解析: 算术基本定理 分解质因数 任何一个数x都可以表示为 x == p1a1 * p2a2 * ````` * pnan 即 bp == p1a1 * p2a2 * ````` * pnan == (p1b1 * p2b2 * `````` *
阅读全文
摘要:题意: 求调和级数,但n很大啦。。 解析: 分段打表 每间隔50存储一个数,在计算时 只需要找到离输入的n最近的那个数 以它为起点 开始计算即可 emm。。。补充一下调和级数的运算公式 r为常数,r=0.57721566490153286060651209(r就是欧拉常数)。 #include <i
阅读全文
摘要:题意: 就是求a的因数中大于b的有几对 解析; 先把素数打表 运用算术基本定理 求出a的所有因数的个数 然后减去小于b的因数的个数 代码如下:
阅读全文
摘要:题意: 就是求1-n中有多少对i 和 j 的最小公倍数为n (i <= j) 解析: 而这题,我们假设( a , b ) = n ,那么: n=pk11pk22⋯pkss, a=pd11pd22⋯pdss, b=pe11pe22⋯pess, 可以确定max(ei,di)=ki, 关于这点 可以自己反
阅读全文
摘要:题意: 求前n项的n/i 的和 只取整数部分 暴力肯定超时。。。然后 。。。现在的人真聪明。。。我真蠢 觉得还是别人的题意比较清晰 比如n=100的话,i=4时n/i等于25,i=5时n/i等于20,于是在大于20到小于等于25内的5个数字j都有n/j等于4,然后ans+=4*5 所以我们可以在小于
阅读全文
摘要:题意: 就是哥德巴赫猜想。。。任意一个偶数 都可以分解成两个(就是一对啦)质数的加和 输入一个偶数求有几对。。 解析: 首先! 素数打表。。因为 质数 + 质数 = 偶数 所以 偶数 - 质数 = 质数 。。。 我真是蠢啊 还有 vis要用bool类型的!!!! int会直接爆 代码如下:
阅读全文
摘要:题意: 求n的k次方的前三位 和 后三位 。。。刚开始用 Java的大数写的。。。果然超时。。。 好吧 这题用快速幂取模求后三位 然后用一个技巧求前三位 。。。orz。。。 任何一个数n均可以表示为10a, 其中 a 可以为小数 那么nk 可以表示为10ak , 令ak == x + y (其中x为
阅读全文
摘要:题意: 求1-n中约数和为偶数的数的个数 记住一个定理:。。。平方数 及其 平方数的2倍 的约数和为奇数 then。。。。减啦 证明: 。。。。我jiao着人家写的很详细,so 看看人家写的吧! 转载至:https://blog.csdn.net/Rain722/article/details/64
阅读全文
摘要:(1)一个大于1的正整数N,如果它的标准分解式为: ,那么它的正因数个数为 对于这个式子 如果我们想要奇因子的个数 那么在primes[i] % 2 != 0时再算。。==0时continue就好了 偶因子同理 代码实现: for(i = 0; i < cnt && prime[i] * prime
阅读全文
摘要:题意: 就是。。。。求a的所有大于b的因子有多少对 算术基本定理求 所有因子 阿欧。。。偷张图。 注意范围 就好 。。。。。 解析: 在1 -1012的范围内求大于b的所有a的因子的对数(有几对) 就等于 在1 -1012的范围内求出a的所有因子 除二 减去 在1 - (b-1)的范围内a的所有因子
阅读全文
摘要://求具体质数void init() { int cnt = 0; mem(vis,0); for(int i=2; i<maxn; i++) if(!vis[i]){ primes[cnt++] = i; for(LL j=(LL)i*i; j<maxn; j+=i) vis[j] = 1; }
阅读全文
摘要:题意: 给你一个集合,让你从这个集合中挑选出几个数,使得这几个数中任意两个数相除后的值不能为素数 即挑选出来的这几个数不能互相冲突 最大独立集 = 所有点数 - 最大匹配数 呵。。呵。。。原先用的二维数组来标记 呵。。呵。。。。呵。。呵。。ER。。。MLE vector 大法好! orz mmp。。
阅读全文
摘要:#include #include #include #include #define mem(a,b) memset(a,b,sizeof(a)) using namespace std; const int maxn = 500, INF = 0xfffffff; int cx[maxn], cy[maxn], dx[maxn], dy[maxn], used[maxn], g[ma...
阅读全文
摘要:最大匹配:二分图中边集的数目最大的那个匹配; 最小顶点覆盖:用最少的点,让每条边都至少和其中一个点关联; 最小边覆盖:用尽量少的不相交简单路径覆盖有向无环图(DAG)G的所有顶点; (本质就是求有向最长路径) 最大独立集:在N个点的图G中选出m个点,使这m个点两两之间没有边的点中,m的最大值。 任意
阅读全文
posted @ 2018-06-11 09:07
WTSRUVF
摘要:匈牙利算法转自于: https://blog.csdn.net/dark_scope/article/details/8880547 匈牙利算法是由匈牙利数学家Edmonds于1965年提出,因而得名。匈牙利算法是基于Hall定理中充分性证明的思想,它是部图匹配最常见的算法,该算法的核心就是寻找增广
阅读全文
摘要:题意:有n个城市,每一个城市有一个拥挤度ai,从一个城市u到另一个城市v的时间为:(au-av)^3,存在负环。问从第一个城市到达第k个城市所话的时间,如果不能到达,或者时间小于3输出?否则输出所花的时间 . 解析:spfa判断负环 然后dfs标记负环 如果某个在环内 || d[e,v] == IN
阅读全文
摘要:1、普通最短路(单向 双向 去还得回来 。。等等 ) 2、判断环路 (正环 负环)(dfs标记环路) (解法:spfa 。。。在进队后判断if(++ans[e.v] > n ) return 1; 3、层次网络 (解法:因为分层,所以把层抽象为一个点,然后把本层的各点与层连线, 然后层与层之间连线
阅读全文
摘要:题意: 就是分糖果 然后A觉得B比他优秀 所以分的糖果可以比他多 但最多不能超过c1个, B又觉得A比他优秀。。。。 符合差分约束的条件 设A分了x个 B分了y个 则x-y <= c1 , 根据其它的关系可以找出c2 c3 ···· 如果不懂差分约束的请 点击 所以构成不等式组:x-y <= c1
阅读全文
摘要:题意:。。。中文题。。。 昂贵的聘礼 Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 54350 Accepted: 16368 Description 年轻的探险家来到了一个印第安部落里。在那里他和酋长的女儿相爱了,于是便向酋长
阅读全文
摘要:差分约束系统 一、概念 如果一个系统由n个变量和m个约束条件组成,形成m个形如ai-aj≤k的不等式(i,j∈[1,n],k为常数),则称其为差分约束系统。 二、引例 给定n个变量和m个不等式,每个不等式的形式为 x[i] - x[j] <= a[k] (0 <= i, j < n, 0 <= k
阅读全文
摘要:概念: 传递一种关系,例如 a//b b//c 则 a//c 从已知的初始关系中 推出最后所有对象之间的关系 初始时把所有有关系的标记为1 即a[i][j] = 1 然后用Floyd 推出最后的结果 则有关系的两个对象被标记为1 例题:POJ3660 题意: n个牛打架 初始已知m个打架结果 求最后
阅读全文
摘要:题意: 农夫john发现了一些虫洞,虫洞是一种在你到达虫洞之前把你送回目的地的一种方式,FJ的每个农场,由n块土地(编号为1-n),M 条路,和W个 虫洞组成,FJ想从一块土地开始,经过若干条路和虫洞,返回到他最初开始走的地方并且时间要在他离开之前,或者恰好等于他离开的时间。 把虫洞的时间看成负边权
阅读全文
摘要:题意: 有n头牛去第x个点开party(有点高大上~),单向路,去到还得回来,问这n头牛每一头花费的总时间的最大值是多少 模板spfa:
阅读全文
摘要:题意: 给出一张各种货币交换的网络,问在网络中交换原有的货币,问货币能否增值? 解析: 判断是否存在正环即可 用spfa 负环和正环的判定方法一样 如果一个点的进队次数超过n次 则存在环 代码如下:
阅读全文
摘要:题意: 一个n * n 的棋盘 上面有些障碍物 放棋子 棋子不能在同一行 同一列 但可以在同一行或同一列隔着障碍物放 这题与poj1321 的思想差不多 对于一个位置 有两种状态放还是不放 参数inx 从1到n*n递增 inx/n表示x轴坐标 inx%n表示y轴坐标 k 为当前所用的棋子
阅读全文
摘要:题意: 在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放k个棋子的所有可行的摆放方案C。 Input 输入含有多组测试数据。 每组数据的第一行是两个正整数,n k,用一个空格隔开,
阅读全文
摘要:题意:给出几个集合,每个集合中有Si个点 且任意两个点的距离为ti,现在要求两个人分别从1和n出发,问最短多长时间才能遇到,且给出这些可能的相遇点; 取两个人到达某点时所用时间大的值 然后取最小的 若有多个结果 则按点的升序排列 解析: 比较裸的最短路 ,但坑在建图上,Si的和小于1e6 那么建的边
阅读全文
摘要:题意:有n个点,每个点都在一个层内,层与层之间的距离为c,一个层内的点可以到达与它相邻的前后两个层的点,还有m条小路 。。时间真的是卡的很恶心啊。。。 借一下别人的思路思路: 这题主要难在建图上,要将层抽象出来成为n个点(对应编号依次为n+1~n+n),然后层与层建边,点与点建边,层与在该层上的点建
阅读全文

浙公网安备 33010602011771号