- 博客(35)
- 收藏
- 关注
原创 DP D.MEX Sequences
Educational Codeforces Round 118 D. MEX Sequences题意思路AC代码题意MEX(x1…xk)是 x1~xk中未出现的最小非负整数如果一个序列被认为是MEX-CORRECT 的 那么|xi-MEX(x1…xi)|<=1(如果 i=1 就满足 |x1-MEX(x1)|<=1,如果i=2 要满足|x1-MEX(x1)|<=1和 |x2-MEX(x1,x2)|<=1)现在 给出n个数 问一共有多少 MEX-CORRECT的序列思路
2021-12-02 16:59:19 689
原创 BFS+树 Escape The Maze (hard version)
codeforces #756 div3 E.2 Escape The Maze 题意思路AC代码题意有n个点 n-1个点组成一个迷宫有k个朋友分别在迷宫中的不同的点里面Vlad需要从这个迷宫中逃脱每个人同时移动速度相同如果Vlad碰到了他的朋友他就逃脱失败如果他能先到达一个点(只要有一条边的,且非1点)他就成功逃脱如果不能成功逃脱输出最小需要几个朋友如果能逃脱输出-1思路就是判断朋友和Vlad谁先能够到达 特殊的点嘛树上多源最短路应该就是说BFS就可以解决把哪个点先被人到
2021-11-28 15:00:45 492
原创 思维题 D. Weights Assignment For Tree Edges
codeforces 756#div3 D. Weights Assignment For Tree Edges题意思路AC代码题意这题我是真的犯病,读了一个小时的假题目就是有两行数fa[i]表示第i个点的父节点(根节点的父节点是自己)rankl[i]表示离根节点第i个近的点如果能够成立要求输出 第i个点和其父节点的距离else输出-1思路创建一个数组d[i]表示 第i个点到根节点的距离d[rankl[i]]=i-1然后 如果 d[i]-d[fa[i]]<0那么就不可能成立
2021-11-27 19:55:04 341
原创 数论+整数小数拆解 (modf) E - Leading and Trailing
E - Leading and Trailing题意思路AC代码题意就是说给 1个 n和 k求的 前三位 和后三位思路后三位可用快速幂难的是前三位a为 klog(n) 的整数部分那么 a就是该数的位数b为klog(n)的小数部分 其就是 那些数字所以前三位就是 pow(10,b)*100AC代码#include<bits/stdc++.h>#define endl "\n"#define INF 0x3f3f3f3f3f3f3ftypedef long l
2021-11-25 15:15:51 161
原创 数论 +思维+约数和 D - Sigma Function
D - Sigma Function题意思路AC代码题意给 一个 n求 1~n中 约数和为偶数的数目思路一个数的约数和除2以外的所有的pi都是奇数所以当除2以外的是 ei为偶数的其约数和就是奇数而 ei是偶数的这个数就是一个数的平方所以 一共有 n-sqrt(n)个但是还有 2未考虑如果一个数 *2之后也是平方数 那其约数和也是奇数AC代码#include<bits/stdc++.h>#define endl "\n"#define INF 0x3f3f3f3f
2021-11-25 14:14:15 539
原创 数论 +思维 codeforces div2 554C.C. Neko does Maths
codeforces div2 554C. Neko does Maths题意思路AC代码题意给 a b两个数求 k 使a+k 和 b+k 的lcs最小思路假设 a+k 和b+k的gcd为t所以t是其因子此时AC代码#include<bits/stdc++.h>#define endl "\n"#define INF 0x3f3f3f3f3f3f3ftypedef long long ll;const ll mod = 1e9 + 7;const doub
2021-11-24 15:48:00 383
原创 数论+思维 D. Multipliers
D. Multipliers题意一、pandas是什么?AC代码题意给n个数一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。AC代码#include<bits/stdc++.h>#define endl "\n"#define INF 0x3f3f3f3f3f3f3ftypedef long long ll;const ll mod = 1e9 + 7;const double PI = acos(-1.0);
2021-11-22 10:25:10 124
原创 数论+唯一分解定理 Aladdin and the Flying Carpet
Aladdin and the Flying Carpet题意思路AC代码题意给 一个 面积为a的矩形最小边长为b求有多少种方案思路就是说一共有 正因数/2个方案(先不考虑 最小边 b长度的约束条件)然后考虑(1~b中是否有数能够整除 a 如果有就方案数–)AC代码#include<bits/stdc++.h>#define endl "\n"#define INF 0x3f3f3f3f3f3f3ftypedef long long ll;const ll mod =
2021-11-21 20:13:15 183
原创 数论 +最大独立集(匈牙利) Prime Independence
二分图题意思路AC代码题意有n个数求一个最大集合使得 集合内任意两数之商不为质数思路任何一个数都可以表示为质数的乘积建立二分图将分成 奇数个组成的数 和偶数个质数相积的数而求的最大集合就是最大独立点集=点数量-最大匹配(仅在二分图中)(概念就是 任意两点中没有相连的边)AC代码#include<bits/stdc++.h>#define endl "\n"#define INF 0x3f3f3f3f3f3f3ftypedef long long ll;const
2021-11-21 17:53:23 241
原创 kmp+暴力 C. Running Track
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档codeforces 338 div2 c.running track题意思路AC代码题意给字符串s1,s2可以进行操作从s1上取一段 (可翻转)问 最少多少个s1 可以拼成s2思路想构造s3(翻转过来的s1)用kmp(变形)不同长度的s2的一部分用来进行匹配(每次取尽可能长的一段)然后用pair记录 beg 和 end(在 s1 或者 s3 上的起点和终点)进行比较AC代码#include<bits/st
2021-11-18 15:42:36 95
原创 大数模 逆元 矩阵
2021 济南ICPC J题意思路AC代码题意给一个 n×n的矩阵并且给出此行列式的绝对值要求给出一个此矩阵 的正负思路正常来讲是不行的(long long 开不了那么大)所以可以用一个很大质数取模(/ 可以用逆元来运算)如果结果和之前不一样那么就是-反正则是+AC代码#include<bits/stdc++.h>#define endl "\n"#define INF 0x3f3f3f3f3f3f3ftypedef long long ll;const ll m
2021-11-18 14:03:04 186
原创 暴力 思维 Codeforces round div 2#649 C. Ehab and Prefix MEXs
思维题题意思路AC代码题意定义 数组MEX 为数组中 没出现过的 最小非负整数给 一个长度n的 数组aiai是每个前i个bi为数组 的MEX现求b数组思路如果要 a[i] 和a[i-1]不同那么必然 b[i]=a[i-1]那么接下来考虑剩余的b[i]只要满足 其不能是a数组有的 就可以了剩下的可以用升序来排列小细节是 a[n]也不能出现在b数组AC代码#include <bits/stdc++.h>#define endl "\n" #define INF 0x3
2021-11-10 11:50:14 270
原创 区间DP D - Dire Wolf
dp题意思路AC代码题意有n只狼排成一排我们需要消灭所有的狼每次狼都有a和 b消灭第i只狼 需要第i只狼的a和其周围狼的b思路为了尽可能小消灭有高b的狼或者从一端是最好的选择dp[i][j]表示从i消灭到j需要的价值(先抛开a)最先被消灭的其b就没有用了(枚举哪个先被消灭)所以状态转移方程是dp[i][j]=dp[i][k-1]+dp[k+1][j]+b[j+1]+b[i-1]//b是加两端的AC代码#include <bits/stdc++.h>#define e
2021-11-07 18:15:55 130
原创 DP 记忆搜索 E. Vasya and Binary String
DP题意思路AC代码题意有一个长度为n的01串你可以删除连续的’0’或’1’并获得相应的ai直到把01串删除完毕最多可以获得多少价值思路记忆DPdp[l][r][len]l 表示起点r 表示终点len 表示长度dp[i][r][len]就是在i到r区间内删除接下来看来代码注释AC代码#include <bits/stdc++.h>#define endl "\n" #define INF 0x3f3f3f3f3f3f3f3f#define IO ios::sy
2021-11-07 17:41:31 122
原创 二维前缀和 codeforce div2 D. Compression
D. Compression题意思路AC代码题意给一个n有n行16进制的数刚好变成nn 的01矩阵将nn矩阵划分成 n/x个x*x的矩阵(此矩阵全为1或0)问 最大的x是多少思路前缀和暴力判断AC代码#include <bits/stdc++.h>#define endl "\n" #define INF 0x3f3f3f3f3f3f3f3f#define IO ios::sync_with_stdio(false);cin.tie();cout.tie(0)usi
2021-11-04 15:37:35 128
原创 codeforces #752 D Moderate Modular Mode
mod math题意思路AC代码题意给 X 和Y (x,y都是偶数)求一个n使得n mod X= Ymod n思路n mod X=n-(n/X)*XY mod n=Y-(Y/n)*n如果x>yn=x+y两者都为0如果x=yn=x都为0关键在于 x<y如果n<xn-(n/X)*X=nY-(Y/n)*n<n不能相等如果n>Yn-(n/X)*X<xY-(Y/n)*n=y所以X<n<Y其实就是n-k1X=Y-k2n
2021-11-01 16:51:52 172
原创 异或dp Happy Matt Friends
hdu 5119 异或 dp 状压 题意思路AC代码题意给n(0<n<=40)个数 和 一个k从n个数中任取 使异或和>=k求有多少种方案思路所以暴力dp本来开40倍可以状压开2倍状态转移方程如下j代表目前的数答案 就是遍历一下AC代码#include <bits/stdc++.h>#define endl "\n" #define INF 0x3f3f3f3f3f3f3f3f#define IO ios::sync_with_stdio(f
2021-10-31 13:05:47 112
原创 #750 div2 D. Vupsen, Pupsen and 0
思维题意思路AC代码题意有a 数组构建一个b数组使得要求1b中不能 出现0要求2sum不能超过1e9思路一对一对来计算比如然后如果是奇数的话就最后三个考虑小细节是两两相加可能为0AC代码#include <bits/stdc++.h>#define endl "\n" #define INF 0x3f3f3f3f3f3f3f3f#define IO ios::sync_with_stdio(false);cin.tie();cout.tie(0)usin
2021-10-30 13:54:33 123
原创 D. Frog Traveler
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档bfs+dp+前驱题意思路AC代码题意青蛙跳进了一个深度为n的井里不同的深度青蛙最多可以跳ai的高度(0~a[i])每次跳跃后要休息一下在不同的深度休息会往下掉b[i]要求 如果能够出到井外求最小跳跃次数和路径如果不能输出-1思路暴力直接想到bfs但是需要细节不然会TAC代码#include <bits/stdc++.h>#define endl "\n" #define INF 0x3f3f3
2021-10-28 11:44:20 396
原创 Squares and not squares
思维题意思路AC代码题意给n个 数(n为偶数)可以对一个数进行操作使其+1或-1要求n/2个数为完全平方数n/2个数为不完全平方数求最小操作数完成思路没啥思路 直接暴力但是有细节0是完全平方数且要2次操作才能变成不完全平方数所以排序的时候慎重是 0排最前面AC代码#include <bits/stdc++.h>#define endl "\n" #define INF 0x3f3f3f3f3f3f3f3f#define IO ios::sync_with_st
2021-10-27 16:08:20 132
原创 2019 ICPC 秦皇岛 F - Forest Program
DFS+计算环长度题意思路AC代码题意多组输入n个点 m条边可以进行删除边的操作使图变成树有多少种方案思路不难想到方案数是每个环(假设每个环有Ki个节点)(2^K1-1)* …(2K2-1)*(2(m-sum))ps:sum 是环节点的总数难点在于计算环的节点可以 用DFS实现用vis保存状态分别为 正在run的 run完的 和还没开始run的具体看代码AC代码#include <bits/stdc++.h>#define endl "\n" #define
2021-10-17 15:57:47 90
原创 CF #747 div2 D. The Number of Imposters
并查集题意思路2.读入数据总结题意n个人 有m个查询每组查询格式如下x(int) y(int) s(string)如果s是imposter 则说明x指责y是会说谎者否则 x指责y是诚实人诚实人只说真话说谎者只说假话问有最多有多少说谎者思路2.读入数据代码如下(示例):data = pd.read_csv( 'https://labfile.oss.aliyuncs.com/courses/1283/adult.data.csv')print(data.head())该
2021-10-16 16:13:40 115
原创 CF#709 div 2 C. Basic Diplomacy
贪心+模拟题意思路AC代码题意小A将度过m天假期他有n个朋友每天 其中有k个朋友有空他会和其中一个玩但是和同一个人玩的天数超过(m+1)/2会令其他朋友不满安排一种情况使得其没人不满如果可以 输出YES和每天小A和谁玩如果不可以输出NO思路每天令出现的第一个先上找一个出现超过(m+1)/2次的朋友vis如果没有就YES有的话后面再遍历使有vis和其他朋友出现的那天让其他朋友上vis的出现次数–直到<=(m+1)/2AC代码#include <bits/s
2021-10-16 00:06:46 89
原创 CF#681 div2 C. Extreme Subtraction
差分+思维题意思路AC代码题意给一个长度为n的数组现有两个操作1.让数组前k个值都-12.让数组后k个值都-1问是否能使此数组全部的值为0思路先考虑操作1 和操作 2分别有什么用那如果我们差分一下这样子的话操作1 就是可以使首位-1 其他任意位置+1(在差分数组中)操作2 就是可以使末尾-1 其他任意位置-1而我们要求的原数组就转化成了只要差分数组中没有负数就行了!!(因为只有正数的话可以通过操作一,二 把其变成全部都是0 易证明)又因为只有操作1可以使数+1所以就是判断
2021-10-14 14:07:35 94
原创 CF #670 div2 C Link Cut Centroids
树的质心+dfs题意质心是什么?思路AC代码题意给一个树有n个点 n-1条边如果这个数有两个质心的话通过删除一条边和增加一条边使得树的质心只有一个质心是什么?树的重心也叫树的质心。对于一棵树n个节点的无根树,找到一个点,将无根树变为以该点为根的有根树时,最大子树的结点数最小。换句话说,删除这个点后最大连通块(一定是树)的结点数最小 .1.树中所有点到某个点的距离和中,到重心的距离和是最小的,如果有两个重心,他们的距离和一样。2.把两棵树通过一条边相连,新的树的重心在原来两棵树重心的连线
2021-10-14 13:43:35 96
原创 E. Maximum Matching 欧拉回路 并查集
E. Maximum Matching题意思路AC代码题意有 n块砖头每个砖头如下一共有四种颜色,只有相同颜色可以相连接问一条价值最大的砖块(连再一起的)思路把颜色看成端点那么就是有n条路径实际上就成了欧拉回路因为只有四种颜只有4个点度数都为奇数时不可连成欧拉回路那枚举每一条边 删除然后dfs否则就是联通块中价值最大的连通块用并查集就可以了AC代码#include <bits/stdc++.h>#define endl "\n" #define INF
2021-09-27 09:56:22 105
原创 D - Monopole Magnets
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档bfs+special judge题意思路AC代码题意复杂的题意 让我看了好久头都看大了有个 n×m的图有黑白格子组成在上面可以放 N磁针 和 S磁针(随便放)N磁针会向同一行或同一列的磁针移动S磁针不可移动每一行 每一列 至少有一个S磁针要求全部黑色格子被N磁针经过白色格子不可能被N磁针经过如果能做到 输出最少的N磁针的数量不能则输出-1思路想了一会 看了一会图就会发现以下几个规律如果黑色格子连在一起那么
2021-09-16 15:04:28 93
原创 P4280 逆序对
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档P4280 逆序对题意思路AC代码题意给 一个长度为 n的数组每个数的范围 为 1~k其中有 -1的 表示 未知(可填从1~k的任意一个数)求少逆序对的数量思路从大佬博客看来的思路我自己就心证 证明了-1位置必须要填非严格单调递增因为数据其实挺少的可以稍微暴力一点先预处理biger[i][j]; //代表i位置上填j其前面有多少比他大的数的数目small[i][j];//代表i位置上填j其后面有多少比他小的数的数目
2021-09-16 10:31:49 97
原创 Codeforces Global Round 16 D
Seating Arrangements题意思路AC代码题意有nm个座位有nm个人 每个人的都有其视力 a[i] ,每个人都按顺序进场现在要满足a[i]小的尽可能排在前面每个人入场从左到右如果入场时候经过了一个有人的位置 不满度+1求满足情况的可能下 最小的不满度思路先开一个vector<pair<int ,int>>a 来记录每个人的视力和入场位次排序一遍(按视力小的放前面,其次位次大的放前面是不满度最小的情况)然后对每一行 进行一个双循环遍历现在用位置.
2021-09-13 18:13:50 70
原创 codeforce 610 div2 C. Petya and Exam
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档Petya and Exam题意思路AC代码题意Petya 要参加考试 Petya 写简单题用 a分钟 写难题用b分钟 一共有T分钟.这场考试鼓励提前交卷有以下规则Petya 可以 在任意 时刻交卷每道题目有时限t,如果在t前未完成 则本场考试为0分每道题目的固定得分为1分求Petya 能获得的最大分数思路感性 证明一波先根据每个题目t的来排序在每个题目截止前1s(完成此题前 其他题目的要求)写最多的简单题
2021-09-09 15:27:42 88
原创 2021 牛客多校 第8场 D OR
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档OR前置知识题意二、使用步骤1.引入库2.读入数据总结前置知识a+b= a&b+a|b提示:以下是本篇文章正文内容,下面案例可供参考题意有一个长度为n 的示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库代码如下(示例):import numpy as npimport pandas as pdimport matplotlib.pyplot
2021-09-09 15:10:38 107
原创 Make a Power of Two
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档Make a Power of Tow题意思路AC代码题意给一个数n通过操作把其变成2的k次幂操作:1.删除数中任意一位数(特殊103 删除1 还剩03)2. 在该数最右添加一位数求最少的操作数提示:以下是本篇文章正文内容,下面案例可供参考思路先预处理将1~2e18范围内的是属于2的k次幂的数求出来将其放在 vector< string > s中将n与各个数进行比较如果全部变的话操作数应该是(把
2021-08-19 11:01:23 157
原创 codeforce 733 D.Secret Santa
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档codeforce 733 D.Secret Santa题意1.AC代码做法总结题意有n个人 每个人都有自己想送礼物的人每人只能收到一个礼物不能送给自己每个人都要收到礼物安排一下 使得满足 送到自己的想要送的人的人数最大化提示:以下是本篇文章正文内容,下面案例可供参考1.AC代码#include <bits/stdc++.h>#define endl "\n" using namespace
2021-08-11 19:03:51 180
原创 hdu 7055 多次差分
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档Codeforeces 733 AC代码题意:T组实验数据 有n个人每个人有自己想送礼物的人 a[i]保证每个人都有礼物 和自己不能送自己 这两个前提最多有多少人的期望可以达到并输出情况AC代码#include <bits/stdc++.h>#define endl "\n" using namespace std;typedef long long ll;const ll INF = 0x3f3
2021-08-06 14:06:54 98
原创 2021多校第二场F 简单计算几何模板(球体相交体积)
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar
2021-07-20 15:41:21 273
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人