- 博客(77)
- 收藏
- 关注

原创 AC山岳险天下_训练记录
菜鸡队训练实录懒,有时间弄个wiki之前(2019-5-30)的训练不想记录了现场赛现场赛记录:[名称:奖项/排名]2019:CCPC 湘潭邀请赛:Cu/89训练实录:[时间 名称:通过题数/总题数,Rank:排名]...
2019-05-30 18:19:27
411
原创 DP(背包)
自用向DP背包01背包normalfi=max(fi,fi−v+w)f_i = max(f_i,f_i − v +w)fi=max(fi,fi−v+w)需要按照 i 从大到小的顺序更新,确保每个物品只会选一次memset(dp,0xcf,sizeof dp);dp[0] = 0;rep(i,0,n){ cin >> v[i] >> w[i];...
2019-10-24 20:07:41
260
原创 P2375 [NOI2014]动物园(kmp)
考虑num数组与next数组的区别。如何统计数目。根据border那一套理论,s的所有border长度为fail[n],fail[fail[n]]...fail[n],fail[fail[n]]...fail[n],fail[fail[n]]...。那么,我们其实可以在求next的过程中,把这个数量进行递推,就得到了一个可以重叠版的num数组。如何去掉不重合的部分。用求next时一样的方法去...
2019-10-05 13:02:00
313
原创 HDU6703 array(权值线段树)
考虑建权值线段树,那么线段树存的值就是它的坐标,考虑到答案一定存在且最大值为n+1n+1n+1,可以多加一个点n+1n+1n+1对于操作1 (1,x)(1,x)(1,x),直接单点修改位置s[x]s[x]s[x] 为n+1n+1n+1(s[x]为初始位置x的值)对于操作2 (2,r,x)(2,r,x)(2,r,x),要查询区间[x,n+1][x,n+1][x,n+1]内第一个大于rrr的位置,...
2019-08-24 21:20:24
302
原创 P3674 小清新人渣的本愿 (bitset+莫队)
给你一个序列a,长度为n,有m次操作,每次询问一个区间是否可以选出两个数它们的差为x,或者询问一个区间是否可以选出两个数它们的和为x,或者询问一个区间是否可以选出两个数它们的乘积为x ,这三个操作分别为操作1,2,3对于操作3,我们可以很容易通过枚举约数得到。离线操作,考虑莫队对于操作1,询问实际上问的就是区间是否存在a和x-a,因为数据范围较小,用bitset维护每个值对于操作2,考虑一...
2019-08-06 10:30:54
212
原创 HDU Multi-University Training Contest 1
SlovedABCDEFGHIJKLM6/13·Ø·ØO!.Ø!·Ø!ØO for passing during the contestØ for passing after the contest! for attempted but failed· for having not attempted yetu...
2019-07-29 19:21:33
233
原创 线性基训练与总结
线性基我们先考虑基的一些定义和性质。唯一表示线性无关极小生成集acm中的线性基一般是基于异或运算下的。根据第一条,我们可以解决一系列算贡献的题目。根据第二条,我们可以知道任一基里的元素不能被其他元素异或得到,进而我们得到基里的元素不能通过异或得到0。根据第三条,线性基的任何真子集不能张成原线性空间。两种矩阵对角矩阵上三角矩阵对角矩阵是通过高斯消元使1只存在主对角线上...
2019-07-26 10:29:41
260
原创 HDU6598 Harmonious Army
经典网络流模型,可以看一下论文(浅析一类最小割问题(pty))问题转化为所有的贡献−最小割a+b=B+C(考虑都在A集合,即花费为B+C)−−−−−−−(1)c+d=B+A(考虑都在B集合,即花费为B+A)−−−−−−−(2)a+d+e=A+C(考虑一个在A,一个在B,即花费为A+C)−−(3)b+c+e=A+C(考虑一个在A,一个在B,即花费为A+C)−−(4)问题转化为所有的贡献-最小割...
2019-07-25 09:40:35
736
4
原创 2019牛客暑期多校训练营(第一场)
SlovedABCDEFGHIJ8/10OØØØØØ.Ø!OO for passing during the contestØ for passing after the contest! for attempted but failed· for having not attempted yetupsolve:IG题放...
2019-07-21 21:28:51
179
原创 2019牛客暑期多校训练营(第一场)E.ABBA
考虑题目的约束条件对于任何合法情况的前缀应满足A<=n+BA<=n+BA<=n+BB<=A+mB<=A+mB<=A+m解释贪心,A 肯定是先用 AB 的 A,再用 BA 的 A;B 同理更本质的性质是对于任何前缀,当前A的最大值只能是选完所有的A,然后B全部来自BA(这样才能有更多的A可以选择),B同理转化问...
2019-07-19 10:24:31
1401
8
原创 最大流训练与总结
*可以通过旁边的目录查看(´・ω・`),或者Ctrl + F裸的最大流P2740 [USACO4.2]草地排水Drainage Ditches#include <bits/stdc++.h>using namespace std;#define rep(i,a,n) for (int i=a;i<n;i++)#define per(i,a,n) for (int i=...
2019-07-15 21:08:30
164
原创 P2944 [USACO09MAR]地震损失2Earthquake Damage 2
题意:确定几个点不割,问最少割几个点使确定的点不能到达T拆点,每个点iii分成iii和i+ni+ni+n对于确定不能拆的点,iii连向i+ni+ni+n的边权为infinfinf,同理,其他点iii连向i+ni+ni+n的边权为111设置超级源点S,S连向所有确定的点,边权为infinfinf,这里要注意S不能连向所有的点,因为题意是说这几个确定的点最后不能到T,而不是所有的点不能到T...
2019-07-15 19:08:59
194
原创 P4662 [BalticOI 2008]黑手党(最小割)
经典的割点模型。考虑裂点操作,一个点i变成两个点iii和i+ni+ni+n,两点中间连边的权为原来点的权。因为起始点和终点可以被割,所以S=sS=sS=s,T=t+nT=t+nT=t+n输出方案时,直接在残余网络dfs(只走流量有剩余的边),最后遍历,如果一个点的入点被访问到了,但出点没有被访问到,就说明这个点被割了。最后排序输出就行了。#include <bits/stdc++.h&...
2019-07-15 14:14:32
311
原创 P1361 小M的作物(最小割)
题目错别字很多,且题意不清,但题目还是很好的经典的最小割模型,结果=收益和-最小割形如下面的模型有 n 个物品和两个集合 A,B,如果将一个物品放入 A 集合会得到aia_iai,放入 B 集合会得到 bib_ibi,还有若干个形如 uiu_iui,viv_ivi,wiw_iwi 限制条件,表示如果 uiu_iui 和 viv_ivi 在一个集合会获得wiw_iwi。每个物品...
2019-07-14 19:53:54
266
原创 codeforces 1191E Tokitsukaze and Duel
Tokitsukaze and Duel找出第一个和最后一个1,第一个和最后一个0sjf胜利的条件很简单,zero2 - zero1 < k || one2- one1 < k难点在qls的回合判断现在设计一个数组a,元素为zero2 , zero1 , one2, one1,并排序已知已经进行到qls的回合,qls不可能输,顶多once again(这里隐含了sjf的胜利...
2019-07-14 08:46:06
218
原创 Codeforces Round #573 (Div. 2)
SlovedABCDEF6/6OOOOØØO for passing during the contestØ for passing after the contest! for attempted but failed· for having not attempted yetA.Tokitsukaze and Enhancement(...
2019-07-13 16:24:41
212
原创 拉格朗日插值 板子
By 杜教namespace polysum { #define rep(i,a,n) for (int i=a;i<n;i++) #define per(i,a,n) for (int i=n-1;i>=a;i--) const int D=2010; ll a[D],f[D],g[D],p[D],p1[D],p2[D],b[D],h[D][2],C...
2019-06-02 15:58:45
231
原创 Gym102174 (The 14-th BIT Campus Programming Contest)
SlovedABCDEFGHIJKL7/12O.O.OO.O.OO.O for passing during the contestØ for passing after the contest! for attempted but failed· for having not attempted yetA.两只脑...
2019-05-31 17:47:18
305
原创 zoj 3647 Gao the Grid
地大校赛出了这道原题,不会写,现在补一下。首先,我们很容易得到答案为C((n+1)∗(m+1),3)−C(n+1,3)∗(m+1)−C(m+1,3)∗(n+1)−斜边3点共线的情况数C((n+1)*(m+1),3) - C(n+1,3)*(m+1) - C(m+1,3) * (n+1) - 斜边3点共线的情况数C((n+1)∗(m+1),3)−C(n+1,3)∗(m+1)−C(m+1,3)∗(...
2019-05-20 20:04:05
191
原创 俄罗斯农民乘法
//防止爆llll els(ll a ,ll b, ll p){ ll ans = 0; while(a){ if(a & 1) ans = (ans + b) % p; a /= 2,b = b * 2 % p; } return ans;}
2019-05-04 00:32:35
370
原创 树状数组模板
//树状数组struct Bit{ vector<int> a; int sz; void init(int n) { sz=n; for(int i=1;i<=n+5;i++) a.push_back(0); } int lowbit(int x) { ...
2019-05-04 00:23:25
111
原创 manacher模板
struct MANACHER{#define STRSIZE 2010000 char str[STRSIZE*2+5]; int radius[STRSIZE*2+5]; int str_len; MANACHER(){} MANACHER(char *tar){solver(tar);} int solver(char *tar); ...
2019-05-04 00:20:16
106
原创 矩阵快速幂模板
const int maxn = 2;struct Matrix{ ll a[maxn][maxn]; void init(){ memset(a, 0, sizeof(a)); for(int i=0;i<maxn;++i){ a[i][i] = 1; } }};Matrix ...
2019-05-04 00:18:40
123
原创 数位DP模板
int a[20];ll dp[20][state];ll dfs(int pos,/*state变量*/,bool lead/*前导零*/,bool limit){ if(pos==-1) return 1; //第二个就是记忆化(在此前可能不同题目还能有一些剪枝) if(!limit && !lead && dp[pos]...
2019-05-04 00:17:29
108
原创 BM模板
#include <bits/stdc++.h>using namespace std;#define rep(i,a,n) for (int i=a;i<n;i++)#define per(i,a,n) for (int i=n-1;i>=a;i--)#define pb push_back#define mp make_pair#define all(x) ...
2019-05-04 00:14:28
173
原创 ST表模板
普通存最大值,最小值int a[maxn];ll Max[MAXN][21];ll Query(int l,int r){ int k=log2(r-l+1); return max(Max[l][k],Max[r-(1<<k)+1][k]);}int main(){ for(int i=1;i<=N;i++) cin >> a...
2019-05-04 00:11:55
107
原创 【2019浙江省赛 - J】K Strings in the Pocket(MANACHER)
题意:给字符串S和T,要求使S变为T操作:对S的区间(l,r)反转,方法数两个字符串相等的情况,MANACHER求回文子串的个数不相等的话,找到s和t不相同的位置l,r,然后判断反转后能不能相等,不相等就不能翻转,相等的话,就往两边拓展答案。#include <bits/stdc++.h>using namespace std;#define rep(i,a,n) for...
2019-04-29 20:09:16
328
原创 Minieye杯第十五届华中科技大学程序设计邀请赛 C.Massive
首先我们把合法的前缀和离散化之后插到树状数组里面,实际上我们要维护的是一个前缀和的后缀和,在枚举的过程中,当左端点加一...
2019-04-22 20:50:14
193
原创 2019南昌邀请赛网络赛 I.Max answer
单调栈维护左边和右边第一个大于它的位置用ST表维护区间前缀和的最大值和最小值当前点小于0的时候就是后半部分Smin−前半部分Smax后半部分Smin-前半部分Smax后半部分Smin−前半部分Smax大于0的时候就是后半部分Smax−前半部分Smin后半部分Smax-前半部分Smin后半部分Smax−前半部分Smin#include <bits/stdc++.h>using ...
2019-04-21 01:14:07
378
原创 HDU 6461 hzy 和zsl 的生存挑战
一眼题,可惜在公交车上不好码代码。。。考虑一种策略,a猜和自己数相同的数,b猜和自己数不同的数。比如a的数字是0,a猜00,这时候其实答案只可能是00和01假如b的数字是1,b猜10,b正确假如b的数字是0,b猜01,a正确#include&lt;bits/stdc++.h&gt;using namespace std;int main(){ cout &lt;&lt; "1....
2019-03-17 10:35:29
484
2
原创 HDU6470 Count
好久没写矩阵快速幂(其实这题可以直接用杜教的BM板子,比赛时突然想练一下矩阵快速幂)比较难搞的是n3n^3n3考虑n3−&gt;(n+1)3n^3 -&gt; (n+1)^3n3−>(n+1)3,多了3n2,3n,13n^2,3n,13n2,3n,1然后就可以构造一个6x6的矩阵[f(n−1),f(n−2),n3,3n2,3n,1][f(n-1),f(n-2),n^3,...
2019-03-17 10:27:24
345
原创 智商恢复训练(中位数)
在一个有序序列里,中位数有一些很优美的性质。1货仓选址在一条数轴上有NNN家商店,它们的坐标分别为 A1…ANA_1…A_NA1…AN。现在需要在数轴上建立一家货仓,每天清晨,从货仓到每家商店都要运送一车商品。为了提高效率,求把货仓建在何处,可以使得货仓到每家商店的距离之和最小。我们设在仓库左边的点有p个,右边的有q个,若p < q,当仓库向右移动的话,距离之和会减少,如p>q...
2019-01-31 00:01:41
343
原创 智商恢复训练(二分,三分)
整数二分1.mid在左边,[l,mid]与[mid+1,r][l,mid] 与[mid+1,r][l,mid]与[mid+1,r](在左边的意思是当mid符合条件时,寻找的范围变成左半边)int bsearch(int l, int r){ while(l < r) { int mid = l + r >> 1; if(check(mid...
2019-01-28 23:01:28
201
原创 CCPC-Wannafly Winter Camp Day7 (Div2, onsite) G 穗乃果的考试(二维前缀和,求和公式展开)
1.二维前缀和2.求和公式展开∑i=1n∑j=1ifi∗gj=∑j=1n∑i=jnfi∗gj\sum_{i=1}^n \sum_{j=1}^i f_i * g_j= \sum_{j=1}^n \sum_{i=j}^n f_i * g_j∑i=1n∑j=1ifi∗gj=∑j=1n∑i=jnfi∗gj对于这题∑i=1n∑j=0i−1fi∗gj=∑j=0n∑i=j+1nfi∗gj...
2019-01-28 16:45:01
476
1
原创 智商恢复训练(前缀和与差分)
1.一维前缀和,略2.二维前缀和可以通过画一个矩阵得出代数意义f[i][j]=f[i−1][j]+f[i][j−1]−f[i−1][j−1]+a[i][j]f[i][j]=f[i−1][j]+f[i][j−1]−f[i−1][j−1]+a[i][j]f[i][j]=f[i−1][j]+f[i][j−1]−f[i−1][j−1]+a[i][j]求二维前缀和的方法#define rep(i,...
2019-01-28 00:04:53
168
原创 NTT模板
//by waynetuinforconst int maxn = ;const int mod = ;const int root = ;template <long long mod, long long root>struct NTT { vector<long long> omega; NTT() { omega.re...
2018-12-31 22:53:11
167
原创 记录一次gunicorn运行成功,但是通过外网端口无法访问的debug经历
Flask云部署,gunicorn运行成功,但是通过外网端口无法访问首先判断程序的正确性,在本地能运行,排除再判断IP是否输入正确,冒号没有输错,排除防火墙是不是开了,因为没有设置服务器,以为应该没有开防火墙,结果默认开了,关闭防火墙后外网能正常访问,解决...
2018-12-27 21:01:02
3287
2
原创 解决Linux无法安装pip3
E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?在服务器上装pip3一直显示错误,先换了一波源,没有任何用。解决方法是Run sudo apt-get update command.或者sudo apt-get clean(and re-install)...
2018-12-27 17:34:41
663
原创 python web Flask入门(一)注册路由
第一个flask程序from flask import Flaskapp = Flask(__name__)@app.route('/')def index(): return '<h1>Hello, World!</h1>'注册路由(route)就是建立URL规则和处理函数之间的关联。Flask框架依赖于路由 完成HTTP请求的分发。只需要为函数...
2018-12-12 22:02:51
661
原创 uestc 第十届ACM趣味程序设计竞赛第二场(热身赛)
A又是好玩的游戏,手玩一下 就发现规律了,简单判一下奇偶就行了B两个字母不一样可以消,保留前一个。考虑最后的状态,肯定只有一个字母,而且这个字母还是第一个字母,所以直接遍历,遇到和第一字母不相同的就跳出,反之ans++#include &lt;bits/stdc++.h&gt;using namespace std;#define rep(i,a,n) for (int i=a;i&...
2018-11-18 17:01:20
693
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人