- 博客(86)
- 收藏
- 关注
原创 CERC 2012 B Who wants to live forever 分治
题目大意:给一个20W长的01序列,序列转化规则为a[i]=a[i-1]^a[i+1]。如果最终序列转化为全0,输出dies否则输出lives。分析:对于奇数个,化为0的前一步应该为10101类型。而对于偶数个,找不到可以化为全0的序列,所以只要是偶数个并且存在1则结果一定为lives。对于奇数个:初始:a1 a2 a3
2015-03-09 17:16:24
860
原创 求逆元模板
一、正常求逆元(扩栈欧几里得)//a对b求逆元ll exgcd(ll a,ll b,ll &x,ll &y){ ll t,gcd; if(b==0) { x=1,y=0; return a; } gcd=exgcd(b,a%b,x,y); t=x,x=y,y=t-a/b*y; return gcd;}
2015-03-04 09:30:02
585
原创 map在竞赛中的应用
一、定义map中的key值和value取值种类很多,但是key必须是可比较的,例如自定义的结构需要加上比较函数:struct Dian{ int x; int y; bool operator < (const struct Dian &a) const { if(x==a.x)return y>a.y; return x>a.x;//最小值优先 }}
2015-03-02 22:15:07
510
原创 优先队列stl在竞赛中的应用
一、定义定义主要有两种方式:方式一:把比较函数定义在结构中:struct Dian{ int x; bool operator < (const Dian &a) const { return x>a.x;//最小值优先 } };priority_queuepq; 方式二:定义比较结构,尤其适用于对同一结构有多种不同的优先
2015-03-02 21:47:54
532
原创 CERC 2014 K题 The Imp 博弈 dp
题目大意:商家有n个物品,每个价值vi,花费ci 商家有一个技能,就是把买家所买的物品变消失,技能可以使用k次 买家只需要购买一个物品或者不买,求最大收益直接取的可能性太多无法表示,如果取得顺序变为a1,a2,...an就可以简化通过反证可以发现,最优的序列一定是价值递增的由于店家比较的是当前和之后,与之前无关,所以是倒着进行d
2015-02-28 14:28:41
652
原创 CERC 2014 L题 区间dp 思维
对于每一个区间,完全包含在之内的,最高的那个一定要被选。选择之后,枚举切割点分成两部分,而跨越切割点的就自然默认为已经被选中淘汰。By cqsh3vj2, contest: 2014-2015 ACM-ICPC, Central Europe Regional Contest (CERC 14), problem: (L) Outer space invaders, Accepted, #
2015-02-28 08:53:17
903
原创 bzoj 1798 段乘段加线段树 双懒标记
要求的值时刻保持正确懒标记为子节点所需的操作http://www.lydsy.com/JudgeOnline/problem.php?id=1798#include#include#include#include#include#include#include#include#includeusing namespace std;#define ll long
2015-02-25 16:40:12
459
原创 hdu 4578 线段树模板
lazy不为-1表示统一段为一个值#include#include#include#include#include#include#include#include#includeusing namespace std;#define ll __int64#define inf 0x3f3f3f3f#define maxNode 100010#define mod 10
2015-02-25 11:19:41
414
转载 无向图的桥 双连通分量
/* *无向图的桥及边的双连通分量,Tarjan算法O(E) */#include #include using namespace std;#define MAXN 10000#define MAXM 1000000struct node { int v, w, pre; //id:边的编号(处理重边情况)} edge[MAXM];int pos[MAXN], n
2014-10-14 22:47:50
409
转载 求无向图的割点(重边不重边神马的无所谓)
#include#include#include#includeusing namespace std;#define N 103vector g[N];int n, low[N], dfn[N], f[N];bool vis[N];void dfs(int u, int depth, const int &root) { //root为连通图的树根 dfn[u] =
2014-10-14 22:36:48
757
转载 zoj 3229 有源汇上下界最大流
题意:一个屌丝给m个女神拍照,计划拍照n天,每一天屌丝给给定的C个女神拍照,每天拍照数不能超过D张,而且给每个女神i拍照有数量限制[Li,Ri],对于每个女神n天的拍照总和不能少于Gi,如果有解求屌丝最多能拍多少张照,并求每天给对应女神拍多少张照;否则输出-1。分析:增设一源点st,汇点sd,st到第i天连一条上界为Di下界为0的边,每个女神到汇点连一条下界为Gi上界为oo
2014-10-01 21:45:13
468
原创 zoj 2314 Reactor Cooling 无源汇网络流
终于知道什么是无源汇网络流的题了。。。#include#include#include#include#include#include#include#include#includeusing namespace std;#define ll long long#define inf 0x3f3f3f3fint dir[4][2]={0,1,0,
2014-10-01 20:17:19
429
原创 hdu 5046 重复覆盖问题 搜索+剪枝
//首先在每次二分之后有两个比较强的剪枝:如果a包含了b,去掉b;如果必须选a,选上a;//之后在搜索的过程中再加一下剪枝#include #include #include #include #include #include using namespace std;#define ll __int64int n,k;ll x[100],y[100];ll map[1
2014-10-01 10:44:27
381
原创 素数打表与素数单个判断
bool primeVis[10100000]; //i是不是素数,从primeVis[2]开始有效int prime[1000000]; //prime[1]=2,prime[2]=3...int primeNum = 0; //N以内素数个数(1.2...primeNum)void init_prim(int N) { memset(primeVis, true, s
2014-09-29 15:13:56
637
原创 poj 1703 种类并查集
切点#include #include #include int n,m;char ts[10];int parent[200020];int root(int p){ if(parent[p]==-1) return p; else return parent[p]=root(parent[p]);}void merge(int a,int b){ a=root(a);
2014-09-28 17:05:14
386
原创 hdu 5050 java大数进制转换
import java.io.*;import java.math.BigInteger;import java.util.StringTokenizer;class Scan { BufferedReader buffer; StringTokenizer tok; Scan() { buffer = new BufferedReader(ne
2014-09-28 11:01:50
929
原创 hdu 5047 java快速输入输出
import java.io.*;import java.math.BigInteger;import java.util.StringTokenizer;class Scan { BufferedReader buffer; StringTokenizer tok; Scan() { buffer = new BufferedReader(ne
2014-09-28 10:10:47
545
原创 hdu 4912 Paths on the tree lca+贪心
直线型的树会爆栈,手动扩栈:#pragma comment(linker, "/STACK:102400000,102400000")
2014-08-06 17:05:46
396
原创 hdu4888 Redraw Beautiful Drawings 多校第三场 网络流
首先是否有解可以通过impossible判定,即从原点到各行流量为各行的和,
2014-07-29 21:36:24
441
转载 大型质因数分解(long long)
注意1.....#include#include#include#include#include#includeusing namespace std;//****************************************************************// Miller_Rabin 算法进行素数测试//速度快,而且可以判断 <2^63的数
2014-07-29 11:55:32
773
原创 hdu 4873 ZCC Loves Intersection 概率推导 java大整数
首先考虑没两对线,由于所有线都平行于不同的坐标轴,所以这两对线
2014-07-24 20:00:21
455
原创 hdu 4876 ZCC loves cards 多校第二场 暴力+剪枝
主要步骤是枚举C(n,k)的所有可能,然后枚举A(k,k)的所有可能,然后对每种可能进行判断
2014-07-24 19:27:08
443
转载 hdu 2993 最大区间平均值
#include#include#include#include#includeusing namespace std;const int MAXN=100010;double sum[MAXN];int a[MAXN];int q[MAXN];int head,tail;double max(double a,double b){ if(a>b)return a
2014-07-23 20:27:23
695
原创 poj 3709 K-Anonymous Sequence 斜率优化dp 分组有大小限制
分组,并且每组的大小有限制注意不一定要分满组才最小,要取min
2014-07-23 20:21:59
549
原创 用getchar()快速输入
int input(){ char ch=' '; while(ch'9')ch=getchar(); int x=0; while(ch='0')x=x*10+ch-'0',ch=getchar(); return x;}
2014-07-21 21:23:36
528
原创 poj 3716 贝叶斯公式的应用
参考http://hi.baidu.com/bfcdygoporbjuxr/item/569897ddc1fc561d21e2503f
2014-07-21 09:00:13
545
原创 poj 2151 Check the difficulty of problems 概率dp
把存在转化为所有 p=1-!p#include#include#include#include#include#include#include#include#includeusing namespace std;#define ll long long#define inf 0x3f3f3f3fint dir[4][2]={0,1,0,-1,1,0,-1,0};co
2014-07-20 09:54:01
349
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人