![](https://img-blog.csdnimg.cn/20200815102105716.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
思维题
各类思维题总结
Gene_INNOCENT
Wait for the sunrise!
展开
-
【Gym-102606 H】Heat Pipes【奇环染色、bfs 生成树】
题意给定一个 nnn 个点,mmm 条边的无向图,现要给图中每一个点赋予一个温度值,使其满足下述三个条件:每个点的温度在 [a,b][a,b][a,b] 范围内[a,b][a,b][a,b] 范围内的所有整数在原图中都至少有一个点对应任何两个直接相连的点温差等于 111(1≤n≤2000,0≤m≤50000,0≤a≤b≤n)(1\leq n\leq 2000, 0\leq m\leq 50000,0\leq a\leq b\leq n)(1≤n≤2000,0≤m≤50000,0≤a≤b≤n)原创 2020-08-06 09:46:18 · 1403 阅读 · 0 评论 -
【2015 NEERC - G 】Garden Gathering【距离计算变形、数学巧妙转换】
题意给出 nnn 个二维坐标点,要求给出两个点的编号满足此两点间距离最远,仅允许走 454545 度斜边与网格边。(2≤n≤2∗105,∣xi∣,∣yi∣≤107)(2\leq n\leq 2*10^5, |x_i|,|y_i|\leq 10^7)(2≤n≤2∗105,∣xi∣,∣yi∣≤107)题目链接:linklinklink思路此题仅允许走斜边与网格边,而非最短路径,因此不同于...原创 2020-04-06 14:13:49 · 233 阅读 · 0 评论 -
【2015-2016 NEERC - G】Graph【构造 + 拓扑排序】
题意nnn 个点,mmm 条边的有向图,现可以往上添加 kkk 条边,使得新图最小拓扑序最大,此处的大与小均指序列的字典序。(1≤n≤100000,0≤m,k≤100000)(1\leq n\leq 100000,0\leq m,k\leq 100000)(1≤n≤100000,0≤m,k≤100000)思路比赛的时候看到这道题,想的就是贪心。对于此类题目,一个很明显的思路就是从开头到末尾...原创 2020-03-25 15:16:06 · 322 阅读 · 0 评论 -
【AtCoder-2164 C】Rabbit Exercise AtCoder【差分找规律+倍增】
题意:一共 nnn 个点,每个点都有自己的初始位置 xix_ixi,一共有 MMM 次操作,每次操作给出一个 pospospos,则 a[pos]=a[pos+1]+a[pos−1]−2∗a[pos]a[pos]=a[pos+1]+a[pos-1]-2*a[pos]a[pos]=a[pos+1]+a[pos−1]−2∗a[pos],如果 pos=1pos=1pos=1,a[1]=2∗a[2]−...原创 2019-11-19 20:41:37 · 369 阅读 · 0 评论 -
【 Codeforces Round #395 (Div. 2) D】Timofey and rectangles【四色定理】
题意:给出nnn个矩形左下和右上坐标,每个矩形都不重合,矩形边长为奇数。现在要将这nnn个矩形涂色,现在一共有444种颜色,要求共享一条边的矩形必须异色,若可以实现,给出涂色方案。否则输出−1-1−1。思路:此题是对四色定理的一个考察,熟悉四色定理的话就会知道平面图上任意相邻区域异色,最多只需444种颜色即可完成,而对于区域均为矩形来说,则只需333种颜色即可完成。但是此题给出4种颜色,便...原创 2019-04-16 20:01:31 · 208 阅读 · 0 评论 -
【Gym — 101473 G】Lines of Containers【思维题】
题意:给出一个 n∗mn*mn∗m 的方格,每次交换一行或一列,问是否可以将该行还原回去,如果可以就输出最少操作数。(aaa 为初始图形,1≤n,m≤3001\leq n,m\leq 3001≤n,m≤300)思路:稍加分析,可以得出几个结论。还原操作数可以行列分开算。如果可以还原,则每行错位位置相同。因此问题就变成了现在有一个数列,数列上有几个位置发生了错位,最少需要几步可以还原这个...原创 2019-07-18 16:32:08 · 1136 阅读 · 0 评论 -
【Gym-100513 K】Treeland【bfs序构造】
题意:nnn 个点,以每个点为根进行一遍 bfsbfsbfs,都会得到一个 bfsbfsbfs 序列。现给出以每一个点为根得到的 bfsbfsbfs 序列,构造出原树上的所有边,保证有解。(1≤n≤2000)(1\leq n\leq 2000)(1≤n≤2000)思路:比赛的时候看着这题被刷刷刷地过,然后自己刷刷刷的 WaWaWa,非常怀疑人生…比赛时的思路是每一个点和第一个 bfsbf...原创 2019-08-05 21:36:22 · 200 阅读 · 0 评论 -
【Gym-101775 C】Traffic Light【思维】
题意:从家到公司,一共 nnn 个红绿灯,一共 n+1n+1n+1 段路。你可以设置每一个红绿灯的开始时间,且每个红绿灯的绿灯时间+红灯时间一致。对于每一种设置,从家出发的时间都任意,因此一定存在一个最坏的情况。先要求输出最坏情况的最小值为多少。(1≤n≤1000)(1\leq n\leq 1000)(1≤n≤1000)思路:比赛时无头绪。题意也看了半天才明白。比赛后知道了解法。答案即为...原创 2019-08-12 14:42:03 · 632 阅读 · 0 评论 -
【16年浙江省赛H ZOJ 3965】Binary Tree Restoring 【两个dfs序还原】
题意: 给出两个dfs序列,求出一个二叉树,使得该二叉树满足这两个dfs序列。思路: 看到这个题,比较容易想到的就是给出二叉树前、中序遍历,求二叉树的后序遍历。因此本题的思路就是对于序列中的每一段递归判断。dfs过程中给出当前两个序列的父亲节点,然后在序列的对应位置进行判断,如果两个节点相同,则这两个节点都属于当前dfs中的父亲节点。 如果...原创 2019-02-27 11:24:46 · 291 阅读 · 0 评论 -
【 Codeforces Round #547 (Div. 3) G】Privatization of Roads in Treeland【树上贪心问题】
题意:现在要对一颗树上的边进行染色。如果一个节点连接的边中有大于等于两条颜色相同,则这个节点为不好的点。现在最多只能有 kkk 个不好的点,问最多需要几种颜色可以将树上所有的边进行染色。思路:比赛的时候前面几题写太慢了,导致没有写到这一题,还是太弱…哭。我们来考虑这道题如何解决。首先既然有 kkk 个不好的点,一个直接的想法就是让前 kkk 个度数最大的点成为不好的点,然后我们可以发现对...原创 2019-03-21 19:15:29 · 184 阅读 · 0 评论 -
【2017-2018 ACM-ICPC, Central Europe Regional Contest (CERC 17)】Justified Jungle【树上思维题】
题意:给定一颗树,要求用 kkk 刀将树切成等大小的 k+1k+1k+1 块,问 kkk 有哪些可能取值。将所有可能取值输出。思路:这个问题一开始看到有点懵,我们可以将其进行转化,先考虑比较简单的情况。如果要求用 xxx 刀把树切成等块,问你是否可能?这个问题就比较容易考虑,如果某一个节点的子树大小刚好为 n/(x+1)n/(x+1)n/(x+1) ,则这个节点连向父节点的边是一定要切的...原创 2019-03-21 18:38:11 · 316 阅读 · 0 评论 -
【2016-2017 ACM-ICPC (ECNA 2016) G】That's one Hanoi-ed Teacher【汉诺塔问题】
题意: 3根柱子的汉诺塔模型。给定每根柱上当前时刻有几个圆盘,判断这个时刻是否会出现在汉诺塔模拟过程中,如果不会,输出"NO"。否则输出当前状态离终态还有多少步。思路: 我们先回顾一下普通汉诺塔的模拟过程。void dfs(int n,int a,int b,int c) //第n个圆盘从a->c{ if(n == 1){ print...原创 2019-03-12 19:32:17 · 1380 阅读 · 0 评论 -
【Gym - 101848B】Almost AP【等差数列改三个数】
题意: 一个长度为 n 的数组,要求最多改动数组中的三个数,使得该数组变成一个等差数列。 题目保证有解。 思路: 我们先来思考一个问题,这个数列的公差是多少? 相信只要稍微思考一下,应该就可以得出先对这个数列的所有公差值记录一个出现次数,可以用map记录。然后求出出现次数最多的那个公差。 由于最多只能改动...原创 2018-08-31 19:16:20 · 644 阅读 · 0 评论 -
【Codeforces Round #508 (Div. 2)】Slime【简单贪心】
题意: 一个数组,长度小于5*1e5,每一次你都可以选择数组中的一个数字,用这个数字将它左右两边相邻的数字吃掉,则被吃掉的数字消失,当前数字的权值变为x-y,使得最后数组中只剩一个元素的时候,使那个元素最大,询问元素最大值。 思路: 其实本题就是一个简单贪心,只需要进行一下简单的分类讨论。1.如果序列中的数有正有负,则答案为序列中所有数字绝对值之和。...原创 2018-09-07 19:31:10 · 239 阅读 · 0 评论 -
【codeforces】【01字符串匹配】Equalize【Manthan, Codefest 18 (rated, Div. 1 + Div. 2)】
Description:You are given two binary strings aa and bb of the same length. You can perform the following two operations on the string aa:Swap any two bits at indices ii and jj respectively (1≤i,j≤...原创 2018-09-03 09:39:44 · 269 阅读 · 0 评论 -
【数论思维题】Enlarge GCD【Codeforces Round #511 (Div. 2)】
题意: 给你 n 个数,分别为 a1、a2、...、ai、... an,现在从这n个数中删去p个数,使剩下的数的gcd变大。求最小的p。 思路: 一开始的思路是想用贪心做,先求出所有数字的gcd,然后将数字排序,再依次求gcd,如果与当前这个数字求出的gcd等于开始的那个gcd,就将这个数字删掉。 然后wa 8,很明显这个方法是错的,比如 2 4 ...原创 2018-09-22 21:37:35 · 298 阅读 · 0 评论 -
【POJ1958】【典型递推问题】汉诺塔问题
题意: 给你n个盘子,问在四个柱子的情况下,最少需要多少步才能将n个盘子移动到另一个柱子上。 思路: 先来看看最经典的三个柱子问题。 f3[i] = 2*f3[i-1]+1,即将(i-1)个盘子移动到中间那根柱子上,然后再将最后一个盘子移动到目标柱子上,最后将(i-1)个盘子移动到目标柱子上即可。 那么对于四根柱子的话,我们可以...原创 2018-10-24 21:32:29 · 345 阅读 · 0 评论 -
【Gym-100085 B】Binary Encoding【思维题】
题意: 给出n个数字,用01串对这些数字进行表示。要求所需的01个数最少,并且任意一个数字的01串不能是其他数字01串的前缀。如样例的6,即给出0-5的表示即可。 0 00 4 110 1 01 5 111 ...原创 2019-02-14 22:56:41 · 171 阅读 · 0 评论 -
【14年浙江省赛 ZOJ 3778】Talented Chef
题意: n个人,每个人都有一个初始数值。你可以选择最多m个人,将他们的数值-1。问最少需要多少次可以将所有人的数值都减为0。 思路: 一次最多将所有人数值总和减少m,所以一个直接的思路就是sum/m向上取整就是答案。然后会发现这样考虑是不准确的,因为如果四个人分别是1 1 10 10,每次可以选择4个人,则最少需要10次。在这种情况下,是由最大值决定的。...原创 2019-02-18 00:07:02 · 167 阅读 · 0 评论 -
【ZOJ 3715 —— 13年浙江省赛K】Kindergarten Election 【枚举答案进行判断】&& 【夺宝奇兵 —— CCPC-Wannafly Winter Camp Day1】
题意:【Kindergarten Election】 幼儿园选leader,已知每个人要投的人,以及让此人改票所需要的花费。问最少需要多少钱可以让1号选手当上leader,注意1号选手自己也要投票,而且不能投自己。思路: 由于数据量很小,n <= 100,因此考虑来枚举答案。即假设leader最后的票数为x,则原来所有票数大于x的人,都需要将票数...原创 2019-02-25 16:17:05 · 239 阅读 · 0 评论 -
【数论】Concatenated Multiples【codeforces-Round #506-div3-D】
题意: 给定n和k,表示一共n个数字,问将其中两个数字拼接起来能够被 k 整除的组合有多少种。比如:6 1145 1 10 12 11 7 答案就是7,一共是451、4510、110、1045、1012、121、1210可以整除11。 思路: 看到题目以后,先想的是两个数相加整除另一个数的条件是什么,然后一开始想是不是两个数都能整除一个数,这两个...原创 2018-08-26 10:04:49 · 300 阅读 · 0 评论