上一页 1 2 3 4 5 6 7 ··· 10 下一页
摘要: A题 数学期望 待补 B题 分块莫队 待补 F题 FFT 待补 I 题 待补 J题 待补 C题: 题目大意:S1和S2都要到T去 最小化修路的费用 分析:也就是尽量能重合走的就重合走 一定存在中间点mid S1到T 和 S2到T 都要经过mid 所以 最小化dis(S1,mid)+dis(S2,mi 阅读全文
posted @ 2022-07-14 11:29 wzx_believer 阅读(32) 评论(0) 推荐(0) 编辑
摘要: 这个链接讲得很好 https://www.cnblogs.com/PPXppx/p/11847837.html https://www.luogu.org/problem/P2515 读完题相信已经思路明确了 有依赖关系的连边, 但可能这整个图不连通,并且还有可能出现环 如果出现环的话,要选其中一个 阅读全文
posted @ 2022-07-14 10:57 wzx_believer 阅读(40) 评论(0) 推荐(0) 编辑
摘要: 木桩: 链接:https://ac.nowcoder.com/acm/contest/11199/A 分析:首先考虑一个小木桩前有x个大木桩 后有y个大木桩 则这个小木桩的贡献就是x×y-x 很明显均值不等式得到x和y尽量均分才能答案最大 如果a为偶数那么恰好前后各一半 如果a为奇数那么多的那一个放 阅读全文
posted @ 2022-07-13 11:28 wzx_believer 阅读(34) 评论(0) 推荐(0) 编辑
摘要: 运算: 链接:https://ac.nowcoder.com/acm/contest/11201/A 分析: 就是一个简单的线性模拟 唯一注意的就是分母不能为0 也就是说如果该位置填 除号 要特判现在的数是否为0 code: #include<bits/stdc++.h> using namespa 阅读全文
posted @ 2022-07-11 17:54 wzx_believer 阅读(50) 评论(0) 推荐(0) 编辑
摘要: 月月查华华的手机 题目描述: 链接:https://ac.nowcoder.com/acm/problem/23053 月月和华华一起去吃饭了。期间华华有事出去了一会儿,没有带手机。月月出于人类最单纯的好奇心,打开了华华的手机。哇,她看到了一片的QQ推荐好友,似乎华华还没有浏览过。月月顿时醋意大发, 阅读全文
posted @ 2022-07-11 16:12 wzx_believer 阅读(37) 评论(0) 推荐(0) 编辑
摘要: 题目描述: 相信大家都玩过扫雷的游戏。那是在一个n*m的矩阵里面有一些雷,要你根据一些信息找出雷来。 万圣节到了 ,“余”人国流行起了一种简单的扫雷游戏,这个游戏规则和扫雷一样,如果某个格子没有雷,那么它里面的数字 表示和它8连通的格子里面雷的数目。 现在棋盘是n×2的,第一列里面某些格子是雷,而第 阅读全文
posted @ 2022-07-11 11:21 wzx_believer 阅读(39) 评论(0) 推荐(0) 编辑
摘要: A:Bookshelf Filling 分析:只能横着放 并且右边b至少还剩下一个 最小化宽度 可以先把横着能放的都先放过去 剩下的就是空格 最后二分一下就好 细节挺多的 #include<bits/stdc++.h> using namespace std; #define ll long lon 阅读全文
posted @ 2022-05-30 15:41 wzx_believer 阅读(174) 评论(0) 推荐(0) 编辑
摘要: 队友打的 思路是连续四个数就可以构造为0 例如 +7 -8 -9 +10 所以只要将前面的数字组合成17后面的连续四个为0 #include<bits/stdc++.h> using namespace std; int main () { int n; cin >> n; if (n < 4) { 阅读全文
posted @ 2022-05-30 15:28 wzx_believer 阅读(139) 评论(0) 推荐(0) 编辑
摘要: 比较简单的签到题 点击查看代码 #include<bits/stdc++.h> using namespace std; #define lowbit(x) x&(-x) #define ll long long int T; ll gcd(ll aa,ll bb){ if(bb)return gc 阅读全文
posted @ 2022-05-24 15:49 wzx_believer 阅读(25) 评论(0) 推荐(0) 编辑
摘要: 分析:发现越到后面分出去 它对整个答案的贡献加的次数就越多 所以我们想尽可能最小的最后分出去 找到当前最小和次小的删去 两者合并 再加入原序列中 依次这样操作就可 #include<iostream> #include<cstdio> #include<queue> using namespace 阅读全文
posted @ 2022-05-23 16:22 wzx_believer 阅读(17) 评论(0) 推荐(0) 编辑
摘要: 题目大意: 一个坐标轴 要到0点 车子有初始的位置和油量 有n个加油站 每个最多可以加pi油 求到达0点最少需要加的次数 (油箱unlimit) 分析: 首先加油肯定是能加多少就加多少 对于路过的加油站我们放入待选区 等到我们需要他们的时候就加油 肯定是选之前所有路过能加最多的优先选择 用一个优先队 阅读全文
posted @ 2022-05-23 14:58 wzx_believer 阅读(18) 评论(0) 推荐(0) 编辑
摘要: 问题简化: 先给你6个数 a1 ~ a6 还有n个数b1 ~ bn 对于 b[i](1<=i<=n) 选择a1 ~ a6的任意一个减去,问最后b数组中的最大值与最小值的差的最小值为多少 分析: 首先dp肯定不行的 数字太大状态不能储存 硬着头皮想也想不出来 既然我们不知道到底该减哪个数 索性都减一遍 阅读全文
posted @ 2022-05-20 16:17 wzx_believer 阅读(15) 评论(0) 推荐(0) 编辑
摘要: 分析:首先小偷要躲过每一个灯塔 小偷躲过一个灯塔只需要横坐标或纵坐标大于即可 想到可以处理处每个小偷相对每个灯塔最少移动步数<ax,ay>分别表示纵坐标或者横坐标移动数 一组<ax,ay>只需要我们满足其中一个即可 这就回到一个模型上面 转化到这个模型上面还是有一定的难度的 https://zhua 阅读全文
posted @ 2022-05-18 20:08 wzx_believer 阅读(29) 评论(0) 推荐(0) 编辑
摘要: 简单地说,就是给出一张名字的列表,要找到一张字母表使得这张人名的列表是按字典序排列的。 这不就是今年天梯赛的原题嘛? 拓扑排序没的说 需要注意的点:可能存在前缀相等但是长度不等 判断possible或者impossible的时候这种情况非常容易忽略 再就是如果拓扑排序存在环 也就是最后仍然存在度数不 阅读全文
posted @ 2022-05-17 17:09 wzx_believer 阅读(26) 评论(0) 推荐(0) 编辑
摘要: 分析:类似最大子矩阵问题 判断条件修改一下就好 up[i][j] 表示点(i,j)最大向上扩展的高度 这个可以预处理出来 剩下的就是单调栈的模板题型 求最大矩形面积 对每一行进行单调栈处理 L[i][j] R[i][j] 分别表示点(i,j) 最大向左向右扩展的位置 #include<bits/st 阅读全文
posted @ 2022-05-17 16:05 wzx_believer 阅读(32) 评论(0) 推荐(0) 编辑
摘要: 分析: 不难发现首先我们找到二进制最大的为1的那个数maxx 我们得到的答案起码最高位是1 然后如果想要答案最大 就想尽可能使得后面为0的均为1 发现 maxx-1 就是后面位均为1 这样两者异或一定是最大的 但是可能[L,R]没有将两者包括 也就是说区间最高位都是1 那这样怎么办? 这时候发现无论 阅读全文
posted @ 2022-05-13 15:31 wzx_believer 阅读(33) 评论(0) 推荐(0) 编辑
摘要: 这个题目和费用提前算不太一样 两者本质上都是消除后效性 这个题不同的就是不知道后面到底哪些要选 而费用提前算是后面的一定都是会选的 所以这个题巧妙地从后往前转移 这样转移前面的一定是后面最优策略 转移方程非常像算期望值 #include <iostream> #include <cstdio> #i 阅读全文
posted @ 2022-05-13 15:18 wzx_believer 阅读(18) 评论(0) 推荐(0) 编辑
摘要: 签到题没啥好说的 点击查看代码 #include<bits/stdc++.h> using namespace std; #define lowbit(x) x&(-x) #define ll long long const int maxn=105; int T; int a[maxn]; voi 阅读全文
posted @ 2022-05-09 20:10 wzx_believer 阅读(28) 评论(0) 推荐(0) 编辑
摘要: #include<iostream> #include<cstdio> #include<queue> #include<algorithm> #include<stdlib.h> #include<string.h> #define re register int #define fo(i,a,b 阅读全文
posted @ 2022-05-07 16:27 wzx_believer 阅读(36) 评论(0) 推荐(0) 编辑
摘要: 其实这个题数据大一点也可以的 根据小凯的疑惑这道题结论 n,m 最小不能组合的数为n×m-m-n 那么对于2 3 最小不能合成的数为1 所以特判一下1 剩下所有的数都可以组合出来 如果出现三个及以上 连续的段相差为1一定不满足题意 如果要出现连续的段相差为2 就有且仅有两个连续段 首先排序 考虑每个 阅读全文
posted @ 2022-05-06 21:09 wzx_believer 阅读(24) 评论(0) 推荐(0) 编辑
摘要: 假设列数大于行数 先一右一下的走 最后只剩一排的时候只能 一上一右 一下一右 判断剩下为奇数还是偶数即可 还要特判不能走到的情况 点击查看代码 #include<bits/stdc++.h> using namespace std; #define lowbit(x) x&(-x) #define 阅读全文
posted @ 2022-05-06 20:45 wzx_believer 阅读(23) 评论(0) 推荐(0) 编辑
摘要: 枚举一下就好 点击查看代码 #include<bits/stdc++.h> using namespace std; #define lowbit(x) x&(-x) #define ll long long int T; int ksm(int a,int b){ int res=1; while 阅读全文
posted @ 2022-05-04 23:03 wzx_believer 阅读(43) 评论(0) 推荐(0) 编辑
摘要: 由于鄙人能力有限 只做了三道题 签到题 没啥好说的 点击查看代码 #include<bits/stdc++.h> using namespace std; #define lowbit(x) x&(-x) #define ll long long const int maxn=5e4+5; void 阅读全文
posted @ 2022-05-02 22:46 wzx_believer 阅读(27) 评论(0) 推荐(0) 编辑
摘要: 当时做的时候感觉快要搞出来了的 但是最后还是没有 向鱼骨一样错开,比如 111110 000001 100000 111111 111110 000001 100000 111111 111110 000001 首先这样能保证合并之后全图都是0 考虑如果该点强制是1 那么该点是0的矩阵就变成1就好 阅读全文
posted @ 2022-05-01 16:57 wzx_believer 阅读(32) 评论(0) 推荐(0) 编辑
摘要: https://www.luogu.com.cn/problem/P1984 当时一直在推 发现根本就推不出来 发现别人都是直接上OEIS 学到了 #include<bits/stdc++.h> using namespace std; #define rep(i,a,b) for(int i=a; 阅读全文
posted @ 2022-05-01 16:05 wzx_believer 阅读(23) 评论(0) 推荐(0) 编辑
摘要: 一看就是哈希+dp 用到哈希是因为要看当前子串和原子串是否匹配 用dp是来统计方案数的 dp[i] 表示前i个字符的方案数 转移方程: 设原串的长度为len 如果匹配(哈希值相等) dp[i]=dp[i-1]+dp[i-len] 表示当前这个子串可以换成* 如果不匹配 dp[i]=dp[i-1]; 阅读全文
posted @ 2022-04-29 20:12 wzx_believer 阅读(33) 评论(0) 推荐(0) 编辑
摘要: 一定要注意前提条件 !!!!gcd(a,p)=1 #include<bits/stdc++.h> using namespace std; #define lowbit(x) x&(-x) #define ll long long map<ll,int>mp; ll mod,b,n; ll ksm( 阅读全文
posted @ 2022-04-29 14:55 wzx_believer 阅读(35) 评论(0) 推荐(0) 编辑
摘要: 比赛的时候被前面的题目心态搞崩了 时间就不够了 就一个简单的拓扑排序 唉 真可惜了 首先对行字符串从前往后建边就好 对于上下两个具有相同前缀的字符串 首先必须两者大小相同 之后就对第一个不同的字符串建边就好 最后因为要字典序最小 用优先队列就好 #include <bits/stdc++.h> us 阅读全文
posted @ 2022-04-28 20:41 wzx_believer 阅读(59) 评论(0) 推荐(0) 编辑
摘要: 注意点 :重构树相连起来 只是保证存在一条路径 但是树上的路径不能保证最短 既然下车步行了 就不用再考虑海拔高度了 尽量走最少的路就行了 #include<iostream> #include<cmath> #include<algorithm> #include<queue> #include<c 阅读全文
posted @ 2022-04-28 20:05 wzx_believer 阅读(25) 评论(0) 推荐(0) 编辑
摘要: 首先这个题目正面模拟是不可能的 因为加入这个点后的改变值不好算 那就整体想 因为要到其他外卖点 所以有很多边是要走两遍的 一去一回 但是又不用再回到外卖站 不回到外卖站一定是到最远的那个 所以很清晰了 对于外卖站到每个外卖点覆盖的路径*2-最长的一条 #include <bits/stdc++.h> 阅读全文
posted @ 2022-04-27 22:36 wzx_believer 阅读(438) 评论(0) 推荐(0) 编辑
摘要: 这个题好啊 为什么会想到 K r u s k a l Kruskal 重构树呢? 我们最好情况一定是遍历完所有的点,那么最优路线一定是最小生成树 我们能否继续到达某个点很大一部分是根据最小生成树路径上权值最大的边 观察一波 K r u s k a l Kruskal 重构树的性质: 边权越大的形成的 阅读全文
posted @ 2022-04-27 19:27 wzx_believer 阅读(80) 评论(0) 推荐(0) 编辑
摘要: 首先肯定是先找到最大的ai为maxx 答案起码是maxx 发现如果我们按照从大到小依次摆放 只要maxx*(n-1)能容下Σai 那一定能满足(自行模拟一下就好,顺序一定是从大到小) 所以我们只要不断使maxx++ 直到maxx*(n-1)>=Σai就好 #include<bits/stdc++.h 阅读全文
posted @ 2022-04-26 20:17 wzx_believer 阅读(34) 评论(0) 推荐(0) 编辑
摘要: 就是一道树剖的裸题 实话说树剖细节挺多的 我打这个代码的时候遗漏的细节 1;有重儿子才先进行重儿子遍历 比如叶节点没有重儿子(默认为0) 是不能遍历的 不然会死循环 2;初始赋值的时候 是对1-n这有序的线段树进行赋值 所以有个rk[] 这个非常易错!!!! 出题人比较狡诈 样例能过 因为每个节点有 阅读全文
posted @ 2022-04-26 11:18 wzx_believer 阅读(26) 评论(0) 推荐(0) 编辑
摘要: 很明显可以用小根堆来处理 但是数据范围不允许 考虑线性想法 这个做法很好很实用 针对每次维护最小的且每次最多增加一个最小 都可以用这样的方法 !!!!完全可以替代小根堆 最后pufer转化为树反过来就好了 思路是一样的 #include<bits/stdc++.h> using namespace 阅读全文
posted @ 2022-04-25 09:32 wzx_believer 阅读(51) 评论(0) 推荐(0) 编辑
摘要: 题目大意 对选手编号有些大小的约束条件 最后求不同编号的最大数目 首先可以想到差分约束 最后答案就是求最最短路+1(最开始的点) 因为缩完点之后各个点之间一定是0连接 所以两边大小可以随便取 判断负环只需要判断dis[i][i]<0 即可 #include<bits/stdc++.h> using 阅读全文
posted @ 2022-04-25 07:37 wzx_believer 阅读(22) 评论(0) 推荐(0) 编辑
摘要: 又是一个差分约束的题 好像dp也能写 #include<iostream> #include<cstdio> #include<algorithm> #include<cstring> #include<deque> #define Endl endl;//qwq using namespace s 阅读全文
posted @ 2022-04-24 22:12 wzx_believer 阅读(35) 评论(0) 推荐(0) 编辑
摘要: 不得不说人家省选题目出的就是有水平 开始一直没有搞懂题目到底什么意思 这句话是关键:只有结果保证惟一的选法才统计在内 也就是左边有很多种可能性 右边选出来有很多种可能性 必须是左边严格大于右边(可能性不相交)c1++ 同理 那这样就好理解了 因为是大小关系 想到差分约束 因为我们要严格大于或者小于 阅读全文
posted @ 2022-04-24 21:45 wzx_believer 阅读(47) 评论(0) 推荐(0) 编辑
摘要: 首先区间个数可以转化为前缀和的形式 然后就是差分约束了 最少包含多少个数 就是不等式为a>=b+c 的形式 只要满足了最长路的不等式 其他所有的不等式也都满足 就是跑一遍最长路 差分约束的关键在于这个约束 一定要把所有的限制条件找出来 这个题看似只有一个区间个数的限制 其实还有 每个数最多选一次(集 阅读全文
posted @ 2022-04-24 21:21 wzx_believer 阅读(27) 评论(0) 推荐(0) 编辑
摘要: 首先吐槽这次比赛题目描述真的太冗长了 单说这个题目还是很好的(尽管很简单) 首先不难想到最短路 肯定是从靠近源点到远离源点的顺序去走 每次走的下限可以不管 因为可以在一条路上来回走 因为要求每天多走一条新边 所以我们考虑每条边 如果这条边的其中一点乘2(保证来回)小于上限 那么肯定就有多的步伐走这条 阅读全文
posted @ 2022-04-24 18:55 wzx_believer 阅读(69) 评论(0) 推荐(0) 编辑
摘要: 我要是早点复习一下带权并查集 当时这个题就能A掉了 啊啊啊啊啊啊心态爆炸 这就是一个带权并查集的模板题啊 给出[l,r]的区间和,相当于s[r]-s[l] 一旦已经知道了 s[a]-s[b],s[b]-s[c],显然再给出一条[a,c]就可以判断"真假"了 将每条这样的信息(l,r,w),l,r放入 阅读全文
posted @ 2022-04-24 10:37 wzx_believer 阅读(438) 评论(0) 推荐(1) 编辑
上一页 1 2 3 4 5 6 7 ··· 10 下一页