自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(87)
  • 收藏
  • 关注

原创 6月27训练赛

A hdu 4586题意:给定一个骰子,有若干个面,当掷到某个面得到一定的钱。某些面可以再掷一次,问掷一次获得钱的期望投一次色子的期望是:sumn\frac{sum}{n}nsum​2次的期望:sumn+mn∗sumn\frac{sum}{n} + \frac{m}{n}*\frac{sum}{n}nsum​+nm​∗nsum​n次的概率是:sumn+mn∗sumn+...+(mn)n−1∗sumn\frac{sum}{n} + \frac{m}{n}*\frac{sum}{n} + ...

2020-06-29 19:43:29 194

原创 吉林大学ACM集训队选拔赛 全部题解

链接先贴代码A分=7、>7、<7=7、>7、<7=7、>7、<7三种情况,对每一位为7其他位对此位的贡献进行计算#include<bits/stdc++.h>using namespace std;typedef long long ll;#define IO ios::sync_with_stdio(false)#define pb push_back#define mk make_pairconst int N = 1e5+10;

2020-06-15 23:07:28 1030

原创 东华大学2020年程序设计竞赛(同步赛)A-D F G

东华大学2020年程序设计竞赛A#include<bits/stdc++.h>using namespace std;typedef long long ll;#define IO ios::sync_with_stdio(false)#define pb push_back#define mk make_pairconst int N = 100+10;const int mod = 1e9+7;int n;struct node{ int index; ll w;

2020-06-09 09:41:14 305

原创 Codeforces Round #648 (Div. 2) A-F

Codeforces Round #648 (Div. 2)A#include<bits/stdc++.h>using namespace std;typedef long long ll;#define IO ios::sync_with_stdio(false)#define pb push_back#define mk make_pairconst int N = 100+10;const int mod = 1e9+7;int t, n, m, a, x[N], y

2020-06-09 09:08:37 137

原创 第三届中国计量大学ACM程序设计竞赛个人赛

链接A:模拟#include<bits/stdc++.h>using namespace std;typedef long long ll;#define IO ios::sync_with_stdio(false)#define pb push_back#define mk make_pairconst int N = 1e5+10;const int mod = 1e9+7;string s;stack<double> sta;int main(){

2020-06-04 10:14:35 418

原创 二维线段树模板

解析待写例题:2020 CCPC Wannafly Winter Camp Day5 I 题代码:#include<bits/stdc++.h>using namespace std;typedef long long ll;const int N = 2e3+10;int n, m1, m2;int x, y, xl, xr, yl, yr;ll w;...

2020-02-02 20:55:09 190

原创 逆元的线性求法

求 x在 mod p 下的逆元。设 p/x= a, p%x= b, 则 a*x+ b = 0 (mod p )等式两边 乘以,得=>>=>>所以或者写成例题:2020 CCPC Wannafly Winter Camp Day5 G 题代码:#include<bits/stdc++.h>using...

2020-02-02 20:50:29 169

原创 2019 ICPC Asia Yinchuan Regional 部分题解

传送门G 题题目 :、并且 p 是素数, 定义成初始ai = 1, 有两种操作:区间乘,将区间 (l,r)乘 x , 区间查询解法:查询的是区间内 素数的最大幂数对 2,3,5,7 分别维护一颗线段树,区间加、区间取 max 即可。#include<bits/stdc++.h>using namespace std;const ...

2019-12-04 23:20:40 420

原创 gym/102411 ICPC 2019-2020 North-Western Russia Regional Contest E. Equidistant

https://codeforces.com/gym/102411/problem/Emx[u]表示 参赛团队所在城市到 u 的最远距离, mn[u]表示参赛团队所在城市到 u 的最近距离, 以u为根通过树形dp可以得到mx[u]、mn[u],再通过换根dp, 得到以其余点为根时的结果, 当mx[u] == mn[u]时, u即为答案。换根时(由u换到v), 提前保存 u 的子节点 中...

2019-11-28 20:46:39 652 3

原创 gym 102346 2019-2020 ACM-ICPC Brazil Subregional Programming Contest 部分题解

https://codeforces.com/gym/102346A将相交的圆并入同一个集合, 在暴力判断在同一个集合的圆,是否可以将盗贼封闭。#include<bits/stdc++.h>#include<queue>using namespace std;typedef long long ll;const int N=1100; int ...

2019-11-28 20:14:31 404

原创 Codeforces Global Round 5 A B C1 C2 D

Codeforces Global Round 5A: 偶数直接除2, 余下偶数个奇数,一半向上取整,一半向下取整#include<bits/stdc++.h>using namespace std;typedef long long ll;const int N = 2e4+10;int n;int a[N];int vis[N];int main(){ ...

2019-10-22 20:17:28 107

原创 状压dp学习

P1896[SCOI2005]互不侵犯dp[i][j][sta] 表示第i行状态为sta,一共放置了j个国王预处理出每一行的合法状态(任意两个国王不相邻 (sta & sta << 1)== 0),并记录每个状态对应的国王数。位运算记得用括号 & 优先级比 == 小。if sta1和sta2 间任意两个国王能不能相互攻击,那么第i行dp[i][j][st...

2019-10-09 15:16:35 136

原创 P3806 【模板】点分治1 (点分治小结 )

传送门分治点  既然是分治,我们肯定每一次都要选择一个点,从他开始分治下去。那么考虑我们如何选择这个点呢?我们发现,每一次处理完一个点之后,我们都要递归进它的子树,那么时间复杂度受到它最大的子树的大小的影响。比如,如果原树是一条链,我们选择链首,一路递归下去,时间复杂度毫无疑问是O()的(那还不如别学了直接打暴力)。所以,我们要让每一次选到的点的最大子树最小。  实际上,一棵树的最大...

2019-09-23 15:15:17 123

原创 Codeforces Round #587 (Div. 3) A B C D E1

传送门A:签到#include<bits/stdc++.h>using namespace std;typedef long long ll;const int N = 2e5+10;int n;char s[N];int num;int main(){ scanf("%d%s", &n, s+1); int cnt = 0; for(int i...

2019-09-21 17:55:01 153

原创 2019 湖南省赛 I题 2019 换根dp

题目:传送门题解:dp[i][j] 表示点 i 的子节点到点 i 的距离mod 2019 = j的路径个数。从节点 1 深搜一下, 可以得到以节点 1 与任一节点形成的距离对答案的贡献。 然后换根, 可以得到每个节点对答案的贡献, 但是每两个节点之间对答案的贡献都被计算了两次,所以ans / 2。//http://acm.hnucm.edu.cn/JudgeOnline/prob...

2019-09-20 17:12:40 439

原创 牛客练习赛52 BGalahad 树状数组

传送门题意: 求一个区间的和,但如果某一个数在这个区间出现了多次,这个数只能被计算一次。官方题解:按右端点从小到大排序。建立树状数组ccc,维护贡献的前缀和。由于权值ai 满足1≤ai≤500000,所以不用离散化,直接维护 last[ a[i] ] 表示元素 a[i] 上一次出现的位置。设当前更新到的位置为t 。如果ai没有出现过,即last[ai]=0,则不产生影响;否...

2019-09-19 22:16:52 142

原创 2019 沈阳网络赛 D Fish eating fruit, 换根dp

传送门题意:题目给了一个N NN个点N−1 N-1N−1条边的树形图现在每次出行的交通工具是鱼,而鱼对于路径长度有不同的喜好如果总路径长度是3的倍数,那么鱼需要路径长度数量的 榴莲如果总路径长度%3=1,那么鱼需要路径长度数量的 木瓜如果总路径长度%3=2,那么鱼需要路径长度数量的 牛奶果现在问,从图上的每个点i 到达除了i 之外的所有点(N∗(N−1)条路径),总共需要花费多少榴...

2019-09-19 22:07:28 85

原创 牛客小白月赛17 G区间求和 莫队

传送门题目:给你n个数,每个数为ai​,现在有m个询问,每个询问l,r,需要求出:代表ai​在这个区间中出现的次数。题解:莫队模板题算法学习博客#include<bits/stdc++.h>using namespace std;typedef long long ll;const int N = 1e5+10;int n, m;int a[N];s...

2019-09-17 20:53:10 225

原创 2019 徐州网络赛 I query 主席树

传送门题意:给你一个长度为n的排列,询问m次区间,问区间 [ l, r ] 内有多少对i,j 使得 gcd(pi,pj)= min(pi,pj)。题解: 对于每个数我可以处理出它倍数所在的位置,假设 gcd(pi,pj)= min(pi,pj), 如果 i < j , 那么在vector[ j] .push_back( i) ,否则vector[ i] .push_ba...

2019-09-17 20:38:58 156

原创 POJ - 2528 Mayor's posters 线段树区间修改 + 离散化

传送门题意:给出一面墙,给出n张海报贴在墙上,每张海报都覆盖一个范围,问最后可以看到多少张海报题解:每次贴海报, 都可能将前面的海报给覆盖掉, 这样考虑好像有点复杂, 那么不防反向搞一下, 从最后一张海报往前贴, 当现在要贴海报的区间,存在一个空白域, 那么这张海报就可以贴,ans++, 将此区间标记为1,用线段树维护一下区间最小值(值只有 0 和 1), 搞一下就好。等等,l , ...

2019-09-11 22:38:12 104

原创 2019 徐州网络赛 GColorful String 回文树

传送门回文树学习: 大佬博客题意:字符串的值小号s等于此字符串中出现的不同字母的数量。您的任务是计算所有回文子串的总值。题解:我们建立回文树,用bitset存每个回文子串用了哪些字母,然后设dp[i]为以 i 结尾的所有回文子串的所有字母种类数,我们通过fail指针找到 i 的fail节点 j,显然dp[i] = dp[j] + 以 i 结尾的最长回文子串种类数。来...

2019-09-10 13:56:48 109

原创 2019 徐州网络赛 B E 线段树

B. so easy题意:初始你有 n 个数, 1 到 n 。你有两个操作 1 x 代表删除 x , 2 x 代表查询第一个大于等于 x 的数题解: n 很大, 所以不能建 1 到 n 的线段树, 但是执行的操作只有1e6, 对每次操作选取 x, x+1, 将选取的点离散化建线段树,对于每次操作 1 , 删除 x, 对于操作 2 , 查询第一个大于等于 x 的数#includ...

2019-09-07 20:54:49 141

原创 Codeforces Round #583 D Treasure Island 双hash dp

DTreasure Island题意:在一个 n * m的矩阵中, ' .' 代表可以通行, ' # ' 代表障碍,每次只能向右或者向下走,让你选择最少的点将它们变成障碍, 使不存在(1, 1)到 (n,m)的通路, (1,1)和(n,m)不能是障碍;题解:由“显然定理”可知, 答案只有三种情况(0、1、2), 最多我只需要将(n-1,m),(n,m-1) 变成障碍,那么就...

2019-09-05 16:18:55 131

原创 HCW 19 Team Round (ICPC format) C. Countering Terrorists dp

传送门题意: 在一条直线上n 个 地方有炸弹, 你的目标是清除所有的炸弹, 你可以执行两种操作, 操作一: 清除长度为 w 的区间内所有炸弹, 操作二:清除长度为 2w 的区间内所有炸弹。 你可以执行 p 次操作一, q 次操作二。 求 w 的最小值。题解: 二分 w , 再 dpdp[i][j] : 前 i 个点, 使用了 j 个操作一, dp[i][j] 表示使用的最小操作...

2019-09-02 22:02:26 260

原创 2019 CCPC - 网络选拔赛 1002 主席树

传送门来自于xls解法:如果这题不带修改操作,相信大家都会做,我就来讲讲怎么处理修改,对于每次修改操作,我不需要真的去修改它,而是把修改的那个元素插入set中去,然后每次查询,我们不带修改查一个答案v1,然后再去set里找第一个大于等于k的v2,min(v1, v2)就是答案。证明:如果v2 >= v1,不影响答案,如果v2<v1,,假设v2在数组中的位置 > r,那么...

2019-08-25 15:07:30 240

原创 2019 CCPC - 网络选拔赛 D path Dijsktra求k短路

题目:求图中所有路径第k短的路解:Dijsktra算法,每次优先队列 pop() 出的一定是当前最短路, 所以只需要 pop() 出max(k) 个最短路就可以。还需要使用一个 multiset 来剪枝, 当multiset里面已经有 max(k) 个路径长度,若新的路径小于set中最大值, 那么新的路径入队列,更新set,否则中断枚举来自于: xls#include...

2019-08-24 15:19:37 274

原创 Comet oj C1016 [欢乐赛]茶颜悦色 线段树区间更新 + 扫描线

传送门来自于题解:由题设 k 为正方形边长。首先我们可以通过确定正方形的底边来确定正方形。比如底边是由[x, y],[x + k, y]两点连成的边,那么这样的底边可以确定一个由 [x, y],[x + k, y],[x, y + k],[x + k, y + k]四个点组成的正方形。假设我 们用左下角的点[x, y]来代表这个正方形(下同)。 现在我们来考虑某个点(a,b)可以被怎样的正方...

2019-08-20 18:31:37 153

原创 2019长沙学院暑假集训队第二次校赛

A、CCSU数位dp,dp[i] [sta] [lim] 第 i 位, sta = 0 代表 第 i-1 位不是 c, sta = 1 表示 第 i-1 位是 c, sta = 2 表示前面是cc,sta = 3 表示前面是 ccs, sta = 4 代表前面是ccsu。sta = 4 之后 可以随便填。dp[i] [sta] [lim] 表示前 i -1 已经填好的合法方案数。#i...

2019-08-16 21:32:12 132

原创 数位dp模板

传送门//http://acm.hdu.edu.cn/showproblem.php?pid=2089//不要62 和 4 #include<bits/stdc++.h>using namespace std;int n, m;int a[20];int d[20][2][2];// d[i][sta][lim] 填第 i 位数 ,sta( 前一位是否是 6),li...

2019-08-13 16:56:08 83

原创 双hash 模板 hdu 1711

传送门题意:判断第二个串是否是第一个串的子串, 如果是,找到第一个匹配的位置将序列转化为base 进制的数#include<bits/stdc++.h>using namespace std;typedef long long ll;const int N = 1e6+10;const int M = 1e4+10;int t;int n, m;int a[...

2019-08-13 16:12:38 212

原创 2019牛客暑期多校训练营(第八场)A All-one Matrices 悬线法

传送门这题主要是去重,vis[i][j]表示第 vis[i][j] 层 底部为 i,j左端点为 i 右端点为 j 的极大子矩形是否被选过若区间{ l[i][j] ,r[i][j] },下方全是 1,则不选悬线法学习单调栈也可以解这题#include<bits/stdc++.h>using namespace std;const int N = 3e3+10;...

2019-08-11 13:55:17 84

原创 hdu 6624 fraction 辗转相除法 求分数不等式最小解

传送门分析题解写的很清楚了辗转相除法可以求得满足不等式的x、y中,最小的x和y。如果不等式中包含整数 m的话,那么 y = m,x = 1;否则 将不等式三项都减 1 ,, 然后取反直至不等式中包含整数,取分子等于 m ,分母 等于 1因为 x , y 都是未知数, 所以需要回溯来求得 x , y#include<bits/stdc++.h>usi...

2019-08-07 20:10:54 203

原创 bzoj 3676: [Apio2014]回文串 回文树(模板)

题目传送门一篇很好的回文树学习博客模板题#include<bits/stdc++.h>using namespace std;typedef long long ll;const int N = 3e5+100;char str[N];struct Palindromic_Tree { // 每一个节点表示一个回文串 int s[N]; int ne...

2019-08-06 20:58:37 113

原创 2019牛客暑期多校训练营(第五场) BSGS 算法

传送门可以推出当 a == 0 ; x0 等于 0 , 其余 xi 都等于 b ,当 a == 1 ;, 是个等差数列,v = x0 + n * b ; n = (v - x0) / b当 a >= 2;是等比数列 ,所以推出了的计算公式 , 就可以通过 BSGS算法求n,BSGS算法是解方程的一种算法, 首先通过费马小定理可以知道 x ...

2019-08-06 14:04:44 120

原创 2019牛客暑期多校训练营(第五场) F maximum clique 1 二分图最大独立集 (输出集)

F maximum clique 1题解:二分图最大独立集的练习题 • 最大团问题和最大独立集问题是互补的问题 • 两个相异的数至少两个 bit 不一样的否命题就是 : 恰一个 bit 不一样 • 可发现按照题目叙述所建的图的补图就是刚好是二分图 • 于是套用二分图最大独立集模板就把这题解决了如果只求最大独立集,那么直接一个匈牙利直接搞定,但是还要输出集合!!!!!...

2019-08-05 20:05:35 154

原创 2019牛客暑期多校训练营(第五场) subsequence 2 拓扑排序(模板)

板子来于hs#include<bits/stdc++.h> using namespace std;const int N = 1e4+100;int n, m;char s1[N], s2[N];int len;int vis[30];vector<int> g[N*30];vector<int> v;int d[N*30];vect...

2019-08-04 14:27:06 137

原创 2019牛客暑期多校训练营(第五场) B generator 1 矩阵快速幂(模板)

传送门#include<bits/stdc++.h>using namespace std;typedef long long ll;const int N = 1e6+100;ll mod;ll x0, x1, a, b;char s[N];struct matrix{ ll m[2][2]; matrix operator * (const matrix &...

2019-08-04 14:21:27 87

原创 hdu 6623 Minimal Power of Prime 素数筛、因式分解

题目给的n为1e18,无法预处理出1e18的素数,但是当大于1e4的因子,最多只有4个,所以可以先预处理出1e4以内的素数,然后对 n 分解质因数,若n == 1,那么取幂数最小的质因数,否则继续判断,n = .........#include<bits/stdc++.h>using namespace std;typedef long long ll;c...

2019-08-04 14:00:35 134

原创 hdu 6621 K-th Closest Distance 主席树+二分(模板)

主席树模板来自xsl#include<bits/stdc++.h>using namespace std;#define Mid (l+r)/2const int M = 1e6;const int N = 1e5+100;int t, n, q;int rt[N], ls[N*30], rs[N*30], cnt = 0, sum[N*30];voi...

2019-08-04 13:43:32 89

原创 HDU - 1498 50 years, 50 colors 最大匹配

传送门题意:一个n*n的矩阵中,有不同颜色的气球,气球的颜色最多50种(从1到50)。然后给你k 次机会扎破这些气球。每次你扎破的这个气球时,可以扎破这一行或者这一列相同颜色的气球,求k次机会内,有多少颜色的气球不能全部被扎破对于该颜色位于(x,y)的气球,我们连一条x到y的边,如果该边的任意一端被选择过,那么这个气球就被扎破了,所以我们要求的就是使所有边至少一端被选择了,二分图最大匹配...

2019-07-25 16:00:18 119

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除