
思维题
lajiyuan_
已经退役啦,会不定期更新cf博客 or 其他计算机知识相关的博客.
展开
-
【POJ-1023-The Fun Number System】 思维题
The Fun Number System题意给你一个n,k,和一个长度为k的由′p′,′n′两种字符组成的串S给你一个n,k,和一个长度为k的由'p','n'两种字符组成的串S给你一个n,k,和一个长度为k的由′p′,′n′两种字符组成的串SS[i]=′p′时对答案的贡献为+2iS[i]='p&am...原创 2018-10-31 23:15:34 · 234 阅读 · 0 评论 -
【51NOD1282时钟】 最小表示法
51NOD1282时钟题意就是给你n个时钟,你可以旋转表判但是指针不会跟着旋转,问任意次旋转后最多有多少个时钟完全相同做法就是考虑其实表盘在这里没什么用,只要所有指针的间隔相同,那么这两个时钟就相同,于是我们求出所有间隔,判断两个循环串是否有相同得时刻就用最小表示法,再用最小表示法表示一下,求最多出有多少个相同的最小表示法即可。代码#include<stdio.h>#in...原创 2018-12-01 23:17:11 · 202 阅读 · 0 评论 -
【51NOD1420数袋鼠好有趣】 sort+思维
题意给你n只袋鼠,一只小袋鼠能装进一只大袋鼠的条件是,大袋鼠的大小至少是小袋鼠的两倍。只大袋鼠最多可以装一只袋鼠。小袋鼠被装进大袋鼠之后就不能再装其它的袋鼠了。求一个最优方案,使得被看见的袋鼠最少。做法一定是先sort用小的装大的,但是用哪个去装呢一定是先sort用小的装大的,但是用哪个去装呢一定是先sort用小的装大的,但是用哪个去装呢我们sort之后把袋鼠分为两部分,前一半做小袋鼠,后...原创 2018-12-01 23:29:16 · 225 阅读 · 0 评论 -
【 Codeforces Round #525 (Div. 2) D. Ehab and another another xor problem】交互+思维题
D. Ehab and another another xor problem题意这是一道交互题,一开始有两个数a,b,0&lt;=a,b&lt;=2300&lt;=a,b&lt;=2^{30}0<=a,b<=230你一共最多提问62次,每一次用两个数c,d提问每个提问有三种返回结果如果a⊕c&gt;b⊕d如果 a \oplus c...原创 2018-12-05 11:01:42 · 256 阅读 · 0 评论 -
【 Codeforces Round #525 (Div. 2) C. Ehab and a 2-operation task】构造题
C. Ehab and a 2-operation task题意给你一个数组,有两种操作,第一种操作是选择一段前缀全部加上x第二种操作是选择一段前缀全部%x最终用不超过n+1个操作构造一个递增数组做法我们考虑有Mod操作,所以其实数字可以加到特别大,最后一次Mod降下来就可以而我们从后往前构造,就保证之后的操作不会影响之前的操作然后我们只要让第i个数字%Mod=i就可以了。由...原创 2018-12-05 11:03:10 · 160 阅读 · 0 评论 -
【Codeforces Round #526 (Div. 2) E. The Fair Nut and Strings】 思维题+Xor树
E. The Fair Nut and Strings题意给你两个只含ab的长度为n的字符串,让你在字典序在这两个之间的字符串中找出k个字符串,使这k个字符串有最多的不同前缀,输出不同的前缀个数。做法把ab考虑为01,而且还要考虑前缀,很显然可以想到01字典树我们把字典树画出来一看,如果我们要查011和110之间的字符串,我们发现就是这样一个区域很明显我们只要统计每个长度的前缀...原创 2018-12-12 22:25:26 · 229 阅读 · 0 评论 -
【Codeforces Round #515 (Div. 3) C. Books Queries】前缀和
C. Books Queries题意有一个书架,最开始没有书,每次往书架的左端或右端加书,每次查询给一个书的id,问最少拿下来多少书这个书可以出现在最左或者最右端。保证每次添加的书id不同,而且每个查询不改变书架上的书,只是查询。做法用一个前缀和记录,加某个书之前往左端加过多少书,往右端加过多少书,,这样每次查询得时候,只要如果查询得那本书是以左端添加的,那么它出现在左端需要拿走添加时往...原创 2018-12-04 00:14:37 · 107 阅读 · 0 评论 -
【Educational Codeforces Round 57 (Rated for Div. 2) F. Inversion Expectation】逆序对+计数
F. Inversion Expectation题意给你一个数组,有些位置是-1,代表可以填数,要求填数之后数组为一个1-n的排列,求所有满足条件的填数方案中的逆序数的期望个数。做法记一共n个数,其中m个未知,因此可能的排列结果有m!种我们分四种情况计数逆序对1.已知和已知:简单的逆序对计数,对于每种排列贡献相同,所以要乘m!,做法可以用归并排序或者树状数组2.未知和未知:考虑任意...原创 2018-12-29 21:18:53 · 358 阅读 · 0 评论 -
【Codeforces Round #531 (Div. 3) E. Monotonic Renumeration】思维题
E. Monotonic Renumeration题意给你一个数组a,构造一个数组b,构造规则是:b1=0b_1=0b1=0对于每一对1&lt;=i,j&lt;=n,如果ai=aj,那么bi=bj对于每一对1&lt;=i,j&lt;=n,如果a_i=a_j,那么b_i=b_j对于每一对1<=i,j<=n,如果ai=aj,那么bi=bj...原创 2019-01-10 21:55:48 · 500 阅读 · 0 评论 -
【Codeforces Round #532 (Div. 2) D. Dasha and Chess】 思维+交互题
D. Dasha and Chess题意给你999*999的棋盘,上面有666个士兵和一个国王,你来操纵国王,checker来操纵士兵,最初国王所在行和列没有任何士兵,每次你可以向你八连通方向任意一个格子移动,而士兵可以从一个地方到任何一个没有棋子的地方,你获胜的条件是你挪动之后,你所在的行或列有一个或多个士兵,交互题,提供2000次操作之后必胜的方法。做法这道题一定要仔细思考数据范围,...原创 2019-01-15 00:37:31 · 435 阅读 · 0 评论 -
【Codeforces Round #538 (Div. 2) C. Trailing Loves (or L'oeufs?)】 分解质因数
C. Trailing Loves (or L’oeufs?)题意求n!n!n!在b进制下末尾有多少个0001≤10≤1018,2≤b≤10121 \leq 10 \leq 10^{18},2 \leq b \leq 10^{12}1≤10≤1018,2≤b≤1012做法这道题我们首先考虑101010进制,那就是看n!n!n!能够整除555多少次和整除222多少次。取个minminmi...原创 2019-03-02 09:58:28 · 211 阅读 · 0 评论 -
【Codeforces Round #544 (Div. 3) D. Zero Quantity Maximization】GCD
D. Zero Quantity Maximization题意给你两个长度为nnn的数组aaa,bbb,ci=ai×d+bic_i = a_i \times d +b_ici=ai×d+bi,现在找到一个ddd使尽量多的cic_ici为000。1≤n≤1051 \leq n \leq 10^51≤n≤105−109≤ai,bi≤109-10^9 \leq a_i,b_i \le...原创 2019-03-08 15:08:39 · 140 阅读 · 0 评论 -
【Educational Codeforces Round 61 (Rated for Div. 2) D.Stressful Training】二分
D.Stressful Training题意有n台电脑,第i台初始电量为aia_iai,每分钟消耗电量为bib_ibi,现在要购买一个充电器,每分钟可以让一个电脑的电量增加XXX,比赛一共持续k分钟,充电器在一分钟之内只能给一个电脑充电,问能让所有学生成功完成比赛的最小的XXX(比赛中途不能出现电量小于000,如果恰好在最后一分钟电量为负,也算成功完成)。做法首先这个我们把这个kkk...原创 2019-03-07 11:47:31 · 317 阅读 · 0 评论 -
【Codeforces Round #547 (Div. 3) C. Polycarp Restores Permutation】思维题
C. Polycarp Restores Permutation题意给你一个长度为nnn的数组差分后的数组(差分数组长度为n−1n-1n−1)。问原数组是否是一个1−n1-n1−n的排列。做法首先我们可以知道如果固定数组中的第一个数,就能还原数组,而且如果原数组是[1,n][1,n][1,n]排列,还原后的数组一定是[k,k+n−1][k ,k+n-1][k,k+n−1]的排列,所以只...原创 2019-03-20 19:12:44 · 246 阅读 · 0 评论 -
【Codeforces Round #547 (Div. 3) E. Superhero Battle】思维题
E. Superhero Battle题意有一个怪兽,初始血量为HHH,他的血量变化情况是一个长度为nnn轮的周期。问怪兽会在第几轮死去。1≤H≤10121 \leq H \leq 10^{12}1≤H≤10121≤n≤2×1051 \leq n \leq 2 \times 10^51≤n≤2×105做法首先如果怪兽血量在一个周期内不曾小于等于000而且每个周期之后怪兽血量增加,直接...原创 2019-03-20 19:13:26 · 466 阅读 · 0 评论 -
【P2827 蚯蚓】分析+乱搞
###题目连接:Description给你nnn个线段,每次操作把最长的线段LLL拿出来分成⌊p×L⌋\lfloor p\times L \rfloor⌊p×L⌋ 和L−⌊p×L⌋L - \lfloor p\times L \rfloorL−⌊p×L⌋ 两部分再放回去,而且除了被操作的线段其他线段的长度都加qqq,一共m回合,问每回合被操作的线段操作前的长度,和最终每条线段的长度。Inpu...原创 2019-09-26 11:45:55 · 269 阅读 · 1 评论 -
【Codeforces 665D. Simple Subset】思维题
Simple Subset题目链接:https://codeforces.com/contest/665/problem/DDescriptionInputOutputSample Input22 3Sample Output22 3题意给你n个数字,在这n个数字中选择最多的数字,使这些数字中选择任意两个相加都是质数。题解:首先要发现如果选出的数中存在两个奇数或...原创 2019-09-26 00:31:41 · 306 阅读 · 0 评论 -
【Mail.Ru Cup 2018 Round 3 D. Decorate Apple Tree】排序+思维
D. Decorate Apple Tree题意给你一棵树每个叶子节点上都有一个颜色,如果某个节点是好节点,要满足他子树内所有的叶子节点颜色不同对每个k∈[1,n]对每个k\in[1,n]对每个k∈[1,n]输出至少有k个点为好点最少需要多少种颜色做法每次选出的k个点最后只有一个点是有效的,也就是子树叶子节点最多的那个点选n个点时一定是根,选n-1个点时一定是去掉根之后包含叶子节点...原创 2018-11-28 09:21:19 · 1034 阅读 · 6 评论 -
【Mail.Ru Cup 2018 Round 3 B. Divide Candies】分析+暴力
B. Divide Candies题意给你一个n*n的方格,点(i,j)的权值为i2+j2i^2+j^2i2+j2问这个方格内有多少个数是m的倍数1&lt;=n&lt;=109,1&lt;=m&lt;=10001&lt;=n&lt;=10^9,1&lt;=m&lt;=10001<=n<=109,1<=m&l...原创 2018-11-28 09:18:49 · 939 阅读 · 0 评论 -
【 Educational Codeforces Round 53 (Rated for Div. 2) D. Berland Fair】思维题
D. Berland Fair题意有n个商品排列成一行,每个商品有一个加个a[i],最初你身上有T元有n个商品排列成一行,每个商品有一个加个a[i],最初你身上有T元有n个商品排列成一行,每个商品有一个加个a[i],最初你身上有T元每次都从左到右走,如果买的起这个商品就买一件,买不起就不买每次都从左到右走,如果买的起这个商品就买一件,买不起就不买每次都从左到右走,如果买的起这个商品就买一件,...原创 2018-11-14 03:22:37 · 225 阅读 · 0 评论 -
【Codeforces Round #519 by Botan Investments - E. Train Hard, Win Easy】排序+前缀和
Codeforces Round #519 by Botan Investments - E. Train Hard, Win Easy题意有两门考试A,B,n个学生要两两组队参加这场考试有两门考试A,B,n个学生要两两组队参加这场考试有两门考试A,B,n个学生要两两组队参加这场考试每场考试对两个人的加分均为两个问题的得分总和每场考试对两个人的加分均为两个问题的得分总和每场考试对两个人的加分...原创 2018-11-12 15:30:00 · 154 阅读 · 0 评论 -
【Codeforces Round #290 (Div. 2)-C. Fox And Names】 思维题+拓扑排序
Codeforces Round #290 (Div. 2)-C. Fox And Names题意给你n个字符串,让你设计一种字典序使这n个字符串满足字典序从小到大给你n个字符串,让你设计一种字典序使这n个字符串满足字典序从小到大给你n个字符串,让你设计一种字典序使这n个字符串满足字典序从小到大如果不能设计输出impossible如果不能设计输出impossible如果不能设计输出impos...原创 2018-11-12 16:17:25 · 175 阅读 · 0 评论 -
【Educational Codeforces Round 54 (Rated for Div. 2) E. Vasya and a Tree】 dfs+树状数组
E. Vasya and a Tree题意给你一颗n个点的树,每个点的权值最初为0给你一颗n个点的树,每个点的权值最初为0给你一颗n个点的树,每个点的权值最初为0有m个操作,每次操作有三个变量v,d,x有m个操作,每次操作有三个变量v,d,x有m个操作,每次操作有三个变量v,d,x操作为在v的距离v&lt;=d的子树内所有节点权值+x操作为在v的距离v&lt;=d的子树内所...原创 2018-11-14 12:09:27 · 363 阅读 · 0 评论 -
【 Educational Codeforces Round 54 (Rated for Div. 2) D. Edge Deletion】dij+思维
D. Edge Deletion题意在一个n个点m条边的无向图中起点为1,设初始到达第i个点的最短距离为d[i]在一个n个点m条边的无向图中起点为1,设初始到达第i个点的最短距离为d[i]在一个n个点m条边的无向图中起点为1,设初始到达第i个点的最短距离为d[i]现在要求在图上删边,使剩下的边不超过k条,并让尽量多的点d[i]与之前相等现在要求在图上删边,使剩下的边不超过k条,并让尽量多的点...原创 2018-11-14 12:15:25 · 303 阅读 · 0 评论 -
【 Codeforces Round #521 (Div. 3) E. Thematic Contests】二分+STL
E. Thematic Contests题意现在有n个题目,每种题目有自己的类型,1&lt;=n&lt;=2∗1051&lt;=n&lt;=2*10^{5}1<=n<=2∗105要举办一次考试,考试的原则是每天只有一种题目类型一种题目类型只能出现在一天每天的题目类型不能相同,而且后一天的题目数量必须正好为前一天的两倍,第一天的题目数量是...原创 2018-11-17 03:28:04 · 296 阅读 · 0 评论 -
【Codeforces Round #520 C.Banh-mi】前缀和+快速幂
C. Banh-mi题意题意就是给你一个01串,q次询问每次询问一段区间题意就是给你一个01串,q次询问每次询问一段区间题意就是给你一个01串,q次询问每次询问一段区间每次询问询问的是:最初区间内0的权值是0,1的权值是1每次询问询问的是:最初区间内0的权值是0,1的权值是1每次询问询问的是:最初区间内0的权值是0,1的权值是1每次可以移出一个字符,移除后答案加上该字符的权值每次可以移出一...原创 2018-11-15 08:47:31 · 984 阅读 · 2 评论 -
【51NOD1287 加农炮】二分+预处理
51NOD1287加农炮题意就是给你n个山,每个山的高度为h[i],有m发炮弹,每发炮弹的高度为b[i],每次炮弹只能打中>=b[i]的第一座山脉,并使这座山的前一个删高度上升1,问m发炮弹之后每座山的高度做法这道题有一个想法如果想到了就很好做,就是后面的山比前面矮的话就是没用的,所以我们只要用另一个数组存一个单调递增的高度,如果后一个山小于前一个山的高度,就把他的高度改为前一个山的...原创 2018-11-22 01:14:46 · 186 阅读 · 0 评论 -
【Codeforces Round #522 D - Barcelonian Distance】简单计算几何
D. Barcelonian Distance 题意给你一条二维平面上的直线,给你两个点,问从A点走到B点的最短路径点只能在给定直线和与坐标轴平行的直线上行走。 做法如果不经过直线,一定直接是曼哈顿距离如果经过直线,一定是A沿直线走到直线上最优,从直线上延直线走到B最优而从A直接走到给定直线有两种走法,从给定直线走到B有两种走法所以只要判断上述5种走法的最小值即可。 坑点给定...原创 2018-11-19 20:25:34 · 344 阅读 · 0 评论 -
【Codeforces Round #522 C - Playing Piano】爆搜+剪枝
C. Playing Piano题意给你一个a数组,让你按照规则构造b数组规则如下如果ai&lt;ai+1a_i&lt;a_{i+1}ai<ai+1那么bi&lt;bi+1b_i&lt;b_{i+1}bi<bi+1如果ai&gt;ai+1a_i&gt;a_{i+1}ai>ai+1那么bi&gt;bi+1...原创 2018-11-19 20:27:25 · 377 阅读 · 0 评论 -
【 Codeforces Round #520 (Div. 2) E. Company】dfs序+线段树+lca
E. Company题意给你一颗具有n个节点的树,有q次查询,每次查询给出l,r求(l,l+1,l+2…r-1,r)这段区间不考虑哪个节点之后能让剩余节点的lca深度尽量大做法这道题有好多种做法,我在做的过程中用了三种做法首先我们要知道,不考虑一个节点能让一些点的lca发生变化的话,这个点一定是dfs序最小的点或者dfs序最大的点。如果能想到这个结论第一种做法就很好想第一种做...原创 2018-11-19 23:34:46 · 651 阅读 · 0 评论 -
【 Codeforces Round #520 (Div. 2) B. Math】质因数分解
B. Math题意给你一个数,每次可以进行两个操作,乘一个数或者开根问最少多少次操作能使这个数变得最小做法仔细想一下就会发现,如果我们需要乘法再开根,那么一次就能把所有需要的乘法都乘上,之后不断开根就可以但是这里有一些细节问题,最终的最小值一定是原数的所有质因子相乘那么我们要乘之后变成什么值才能一直开根呢一定是每个质因子都有2k2^k2k个,而且所有质因子的k相等于是我们先算...原创 2018-11-19 23:35:32 · 220 阅读 · 0 评论 -
【51NOD1366贫富差距】 floyd
51NOD1366贫富差距题意就是给你n个人,如果某两个人是朋友,他们之间存款差距<=d,给定d和n个人的关系,求最富有的人和最贫穷的人的存款差最大为多少,其实就是求出最长路,最长路上所有权值设置为d,也就是最长路的大小len,答案就是len*d,如果图不连通,那么就输出-1代码#include<stdio.h>#include<iostream>#incl...原创 2018-11-20 00:38:35 · 229 阅读 · 0 评论 -
【 Codeforces Round #518 (Div. 2) [Thanks, Mail.Ru!] C. Colored Rooks】 构造
C. Colored Rooks题意这个题的题意有一些复杂,给你一个1e9∗1e9的棋盘这个题的题意有一些复杂,给你一个1e9*1e9的棋盘这个题的题意有一些复杂,给你一个1e9∗1e9的棋盘给你n种棋子,m个关系给你n种棋子,m个关系给你n种棋子,m个关系所有有关系的棋子必须在同一行同一列出现所有有关系的棋子必须在同一行同一列出现所有有关系的棋子必须在同一行同一列出现所有不具有关系的...原创 2018-11-17 17:26:57 · 295 阅读 · 0 评论 -
【Codeforces Round #523 (Div. 2) B. Views Matter】模拟题
B. Views Matter题意从左到右给你n堆正方体,每堆有a[i]个正方体堆在一起,问最多可以拿走多少个正方体使俯视图和右视图都不改变。做法有些正方体可以对俯视图和右视图做两次贡献,有些不能做贡献,首先将所有堆排序,之后看当前正方体堆是否可以做两次贡献就可以了。设置一个变量,表示当前需要被贡献的高度,如果当前堆超过需要被贡献的高度,则做两次,变量++。否则做一次贡献。代码#in...原创 2018-11-24 14:35:34 · 198 阅读 · 0 评论 -
【Codeforces 660C-Hard Process】二分/尺取
Hard Process题目链接:https://codeforces.com/contest/660/problem/CDescriptionInputOutputSample Input7 11 0 0 1 1 0 1Sample Output7 11 0 0 1 1 0 1题意给你一个长度为n的01串,最多可以把其中k个0变成1,问操作之后可以得到的最长的连续...原创 2019-09-26 00:41:21 · 389 阅读 · 0 评论