03 2015 档案

摘要:Dijstra,Kruskal,在线LCA,树上倍增,手写堆【╮(╯▽╰)╭被stl嘲讽了】。#include#include#include#include#include#include#include#define L(x) (x>1; if(dist[heap[a]] ... 阅读全文
posted @ 2015-03-31 22:06 <Dash> 阅读(111) 评论(0) 推荐(0) 编辑
摘要:我只是来贴代码的,题解什么的,去问大神吧【顺便推广uoj】提交地址:http://uoj.ac/problem/29#include#include#include#include#include#include#include#include "rail.h"const int M... 阅读全文
posted @ 2015-03-30 22:29 <Dash> 阅读(133) 评论(0) 推荐(0) 编辑
摘要:分治,函数式线段树,题解去问大神吧。。。提交地址:http://uoj.ac/problem/29【似乎没有vjudge】#include#include#include#include#include "holiday.h"#define c(x,y) tree[x].c[y]#... 阅读全文
posted @ 2015-03-30 22:26 <Dash> 阅读(165) 评论(0) 推荐(0) 编辑
摘要:区间染色什么的。。。#include#include#include#include#include#include#include#include#includeconst int MAXN = 100005;int n,T,m;struct node{ int cnt,co... 阅读全文
posted @ 2015-03-30 22:15 <Dash> 阅读(128) 评论(0) 推荐(0) 编辑
摘要:线段树区间合并什么的。。。#include#include#include#include#include#include#include#include#includeconst int MAXN = 50005;int n , m;struct treenode{ int ... 阅读全文
posted @ 2015-03-30 22:13 <Dash> 阅读(117) 评论(0) 推荐(0) 编辑
摘要:二维树状数组,函数部分是模板。。#include#include#include#include#include#include#include#include#include#define LowBit(x) (x&(-x))const int MAXN = 1005;int n... 阅读全文
posted @ 2015-03-30 17:34 <Dash> 阅读(104) 评论(0) 推荐(0) 编辑
摘要:虚树:包含了给定点,并收缩了不分叉边的连通子图。 http://www.kuangbin.net/archives/bzoj3572 虚树的构建: 将所有询问点按照dfs序排一遍序,然后,依次加入栈中,若枚举的节点h[i]与栈顶元素的s[top] 的LCA fa的... 阅读全文
posted @ 2015-03-29 22:23 <Dash> 阅读(117) 评论(0) 推荐(0) 编辑
摘要:树链剖分+线段树#include#include#include#include#include#include#includeconst int MAXN = 100005;const double eps = 1e-8;int n, q;struct edge{int v,nex... 阅读全文
posted @ 2015-03-28 15:30 <Dash> 阅读(141) 评论(0) 推荐(0) 编辑
摘要:分析:对于数a,b,满足a>=b, 则 (amodb)=m暴力修改即可时间复杂度:O(n∗log2ai∗log2n+m∗log2x∗log2n)#include#include#include#include#include#include#includeconst int MAXN... 阅读全文
posted @ 2015-03-28 10:18 <Dash> 阅读(104) 评论(0) 推荐(0) 编辑
摘要:有 N 个工件要在 M 个机器上加工,有一个 N∗M 的矩阵描述其加工时间。 同一时间内每个机器只能加工一个工件,问加工完所有工件后,使得平均加工时间最小(等待的时间+加工的时间)假设某个机器处理了 k 个玩具,时间分别为 a1,a2…..,ak那么该机器耗费的时间为a1+(a1+a... 阅读全文
posted @ 2015-03-26 22:29 <Dash> 阅读(131) 评论(0) 推荐(0) 编辑
摘要:因为考试题太难了改不出,于是就弃疗搞莫队算法去了造福社会:莫涛2010年集训队论文 hzwer的写法极其简略,长跪不起具体实现: 1.分块 S=sqrt(n)+ 双关键字排序 2.如下 ... 阅读全文
posted @ 2015-03-26 20:28 <Dash> 阅读(262) 评论(0) 推荐(0) 编辑
摘要:给出正整数N,请求出N!最右非零的数位的值。ans(N!)=ans(1∗2∗3∗4∗...∗N)=f(N)∗g(N)mod10f(i)=(1∗2∗3∗4)∗(6∗7∗8∗9)∗(11∗12∗13∗14)∗...∗(...∗i)mod10 f(i)=(1∗2∗3∗4)∗(6∗7∗8∗9... 阅读全文
posted @ 2015-03-16 21:40 <Dash> 阅读(168) 评论(0) 推荐(0) 编辑
摘要:暴力#include#include#include#include#include#includeconst int SIZE = 40000;long long x,y,k,p;bool flag = false;int main(){#ifndef ONLINE_JUDGE ... 阅读全文
posted @ 2015-03-16 19:36 <Dash> 阅读(180) 评论(0) 推荐(0) 编辑
摘要:构造题构造。构造的关键是:1.每场的胜者将在下一场出现 2.不会自己对战自己 按如下方法构造: 按场次从大到小填掉win,若只剩一场就填到lose去。 win a a a b b c c … lose a b 最后把剩下的填到lose没填... 阅读全文
posted @ 2015-03-16 18:32 <Dash> 阅读(136) 评论(0) 推荐(0) 编辑
摘要:水题#include#include#include#include#include#includeconst int MAXN = 10005;int n;int a[MAXN] = {0};int r[MAXN] = {0};int sum = 0;int rem = 0;int... 阅读全文
posted @ 2015-03-16 13:11 <Dash> 阅读(134) 评论(0) 推荐(0) 编辑
摘要:解模意义下的方程可以视为解不定方程 A1∗x1+A2∗x2+A3∗x3+……+An∗xn+P∗xn+1=B用欧几里得扩展算法二元情形: 设a>b。1,显然当 b=0 时,gcd(a,b)=a 。此时 x=1,y=0; 2,a , b 0 时,设 a∗x1+b∗y1=gcd(a,b)... 阅读全文
posted @ 2015-03-15 16:22 <Dash> 阅读(162) 评论(0) 推荐(0) 编辑
摘要:构造题假设考虑一种比较简单的情况,序列里只有两类元素 A=k/n , B=k/n+1那么可知数组中有 n mod k 个B类元素,其余为A类元素于是令S1=A , Sn=B还有(n mod k) −1个B类元素需要确定位置找规律/分析可发现 Sp=B,p=i∗n/(n mod k)... 阅读全文
posted @ 2015-03-15 12:23 <Dash> 阅读(131) 评论(0) 推荐(0) 编辑
摘要:构造题根据中点公式列方程, 然后用代入法手算解方程最后判断方程的根的个数, 如果有根,就构造一组方案#include#include#include#include#include#include#includeconst int MAXN = 10005;const double ... 阅读全文
posted @ 2015-03-14 22:38 <Dash> 阅读(125) 评论(0) 推荐(0) 编辑
摘要:状态压缩 dpf[i][t] 是指前 i−1 行填满,第i行状态为 t 的方案数 记 full 为将一行填满的状态,可知 t^full 将 t 填满的方案 t 将 t^full 填满的方案本题比较适合 DFS 逐行 dp 记 row 行状... 阅读全文
posted @ 2015-03-13 22:27 <Dash> 阅读(129) 评论(0) 推荐(0) 编辑
摘要:有很多个点,最多一万个,告诉你它们的坐标。现在需要构造一条闭合线。 这个闭合线满足以下六点: 1必须是闭合的。 2必须用到所有的点。 3构造的线段之间若成角,则必须是90度。 4构造的边必须与x或y轴平行。 5构造的线段之间不存在交错和重复的情况。 6最后形成的闭合线长度必须要是所有... 阅读全文
posted @ 2015-03-13 13:56 <Dash> 阅读(132) 评论(0) 推荐(0) 编辑
摘要:树形dp,贪心思想#include#include#include#include#include#include#includeconst int MAXN = 16005, INF = (1 0) f[u] += f[v]; }int main(){#ifndef ONLINE... 阅读全文
posted @ 2015-03-11 22:11 <Dash> 阅读(160) 评论(0) 推荐(0) 编辑
摘要:感谢Owaski的帮助#include#include#include#include#include#include#includeconst int MAXN = 10005;char s[MAXN] = {'\0'};int n;int fc[256] = {0}, sum... 阅读全文
posted @ 2015-03-11 21:25 <Dash> 阅读(141) 评论(0) 推荐(0) 编辑
摘要:给定一个数k,找出最大的数b(1#include#include#include#include#include#includeconst int MAXL = 2005 , base = 10;struct bignumbers{ int l; int num[MAXL]; ... 阅读全文
posted @ 2015-03-11 18:38 <Dash> 阅读(144) 评论(0) 推荐(0) 编辑
摘要:假设每一层的水都是本质不同的,如果存在一种最优方案从第i层开始减压,那么第i层的水一定要流到第n层可以用反证法证明: 若存在一种最优方案第i层的水没有流到第 n 层, 而是在第j层被阻挡了 (j>i),那么修改这个方案,从第j+1层开始减压 , 第 j+1 到第 n 层的操作不变, ... 阅读全文
posted @ 2015-03-11 13:14 <Dash> 阅读(208) 评论(0) 推荐(0) 编辑
摘要:计算几何就是麻烦, 我只想学学辛普森函数和自适应辛普森算法, 计算几何其他内容。。。就理性放弃吧。。。。。。S(l,r)=(f(l)+4∗f(mid)+f(r))/6#include#include#include#include#include#include#define pow... 阅读全文
posted @ 2015-03-09 22:23 <Dash> 阅读(127) 评论(0) 推荐(0) 编辑
摘要:按AC人数确定刷题顺序是极好的 版权声明:本文为博主原创文章,未经博主允许不得转载。 阅读全文
posted @ 2015-03-09 13:06 <Dash> 阅读(106) 评论(0) 推荐(0) 编辑
摘要:You are given N*M matrix A. You are to find such matrix B, that B[i,j]=min{ A[x,y] : (y>=j) and (x>=i+j-y) }动态规划,枚举对角线, 因为是取最值, 所以取值区域可以重叠,就... 阅读全文
posted @ 2015-03-08 18:44 <Dash> 阅读(152) 评论(0) 推荐(0) 编辑
摘要:其实可以写归并排序求逆序对 但以前写过,就改写了离散化+树状数组c++离散化真心写得短#include#include#include#include#include#include#includeconst int MAXN = 100000;int a[MAXN] = {0} ,... 阅读全文
posted @ 2015-03-08 17:55 <Dash> 阅读(147) 评论(0) 推荐(0) 编辑
摘要:二分图判断。我用DFS做的。【话说俄罗斯小学生都这么爽,无力吐槽】#include#include#include#include#include#include#include#define V(x) mp[x].v#define Next(x) mp[x].next#define... 阅读全文
posted @ 2015-03-08 17:34 <Dash> 阅读(160) 评论(0) 推荐(0) 编辑
摘要:递归处理[想象中的]字符串,因为只需要知道其中一个元素最后的位置, 可以只调用log2N次递归就得出答案#include#include#include#include#include#include#include//phi(W) = phi(wNwN-1...wK+1) + ph... 阅读全文
posted @ 2015-03-08 16:35 <Dash> 阅读(119) 评论(0) 推荐(0) 编辑
摘要:初看以为要构造矩阵,细看发现构造不了,再细看发现取模的m很小 于是就哈希找函数周期了。#include#include#include#include#include#include#include#define INF (1<<30)-1const int MAXM = 1005;... 阅读全文
posted @ 2015-03-08 11:29 <Dash> 阅读(115) 评论(0) 推荐(0) 编辑
摘要:动态规划开始不会做, 看了Owaski的题解才会的#include#include#include#include#include#include#include#define INF (1 i; j --) { f[mod(i)][mod(j)] = I... 阅读全文
posted @ 2015-03-08 11:09 <Dash> 阅读(137) 评论(0) 推荐(0) 编辑
摘要:题意: 有K个城市,第i城市至多有N[i]个人,每个城市有一个属性Q[i]。 对于N=∑N[i]个人,每个人有一个属性P[i]和价值W[i],把第i个人放进第j个城市中,当且仅当P[i]>Q[j]时,可以获得W[i]的价值,否则不获得价值。 求出满足价值和最大的人数分... 阅读全文
posted @ 2015-03-08 09:52 <Dash> 阅读(109) 评论(0) 推荐(0) 编辑
摘要:题目大意就是给你N条线段,然后按照顺序添加线段,求出当添加入第几条线段时,已添加的某些线段组成了一个回路。离散化 + 并查集 .#include#include#include#include#include#include#define INF 1<<30const int MAX... 阅读全文
posted @ 2015-03-07 23:36 <Dash> 阅读(137) 评论(0) 推荐(0) 编辑
摘要:水题#include#include#include#include#include#include#define INF 1<<30const int MAXN = 16005;struct node{int a,b;}mp[MAXN] = {0};bool cmp(const n... 阅读全文
posted @ 2015-03-07 22:19 <Dash> 阅读(142) 评论(0) 推荐(0) 编辑
摘要:今天xjz大爷说写写平衡树,结果此题卡平衡树常数, 听说sbt都要卡常数才能过,想想都觉得不可思议,给跪了正解是并查集+树状数组+二分答案。 都不难写,但我觉得这题卡平衡树还挺是挺坑的。#include#include#include#include#include#include#... 阅读全文
posted @ 2015-03-07 21:25 <Dash> 阅读(185) 评论(0) 推荐(0) 编辑
摘要:裸的平衡树,于是就1A了,于是这就是我以后的平衡树模板了 不要问我为什么用宏定义和结构体写出一个奇怪[极像数组并且可以用数组代替]的表达方式, 这是我最后的倔强。。。。。。UPD:平衡树模板已换!#include#include#include#include#include#inc... 阅读全文
posted @ 2015-03-07 20:19 <Dash> 阅读(120) 评论(0) 推荐(0) 编辑
摘要:以后再也不信网上大神的翻译了离散化,线段树,染色问题附手动离散化和c++函数离散化 复杂度 O(N∗log2N)#include#include#include#include#includeusing namespace std;const int MAXN = 10005 , M... 阅读全文
posted @ 2015-03-07 08:04 <Dash> 阅读(143) 评论(0) 推荐(0) 编辑
摘要:hdu 1689线段树区间染色,听说用map可以水过去。#include#include#include#include#includeconst int MAXN = 1000005;int tree[MAXN>1; fold_down(si); if(... 阅读全文
posted @ 2015-03-06 21:55 <Dash> 阅读(112) 评论(0) 推荐(0) 编辑
摘要:poj 2828从结束状态推向起始状态可以发现,这个过程中,只要给之前的状态留下足够的空位,就可以实现无冲突的放置方案#include#include#includeusing namespace std;const int MAXN = 200005;int val[MAXN] ,... 阅读全文
posted @ 2015-03-06 21:49 <Dash> 阅读(109) 评论(0) 推荐(0) 编辑