想法题
Elliott__
这个作者很懒,什么都没留下…
展开
-
【想法】2013-2014 ACM-ICPC, NEERC, Moscow Subregional Contest - K - Top K Elements
题目链接https://codeforces.com/gym/100257题意给出一个递推式xi=(A⋅xi−2+B⋅xi−1+C)mod231x_i = (A · x_{i−2} + B · x_{i−1} + C) mod 2^{31}xi=(A⋅xi−2+B⋅xi−1+C)mod231,问你求出前nnn项的前kkk大。1≤n≤1e8,1≤k≤2e51\leq n \leq 1e...原创 2019-10-14 10:55:43 · 649 阅读 · 0 评论 -
【单调栈】2274 - Strah
题目链接<http://10.7.88.2/CLanguage/showproblem?problem_id=2274>题意:给出一张由矩阵,求出所有合法矩阵的面积之和。题解:这是一个常见的套路。先预处理出一个数组dp,记录每个点向上最大的合法高度。对于每一行,维护底在这一行的矩阵的面积和。从左往右扫,利用单调栈维护高度。对于答案的更新只在pop的时候进行。...原创 2019-04-03 16:06:08 · 331 阅读 · 1 评论 -
【差分染色】HDU - 6514 - Monitor
题目链接<http://acm.hdu.edu.cn/showproblem.php?pid=6514>题意:一张n*m(n*m<=1e7)的矩形,被若干个矩形覆盖,另外问一些矩形是否被前者包含。题解:对于覆盖的矩形,在对角线点分别取1和-1,做一个前缀和。此时被多个矩形覆盖的可能会大于1,暴力扫一遍把这些全赋值成1。再做一遍前缀和,通过计算面积来判断是否...原创 2019-04-20 20:21:07 · 194 阅读 · 0 评论 -
【离散】Codeforces - 1197 - E. Culture Code
题目链接http://codeforces.com/contest/1197/problem/E题意n个套娃,每个套娃有两个属性ininin和outoutout,当且仅当outi<=injout_i<=in_jouti<=inj时,iii套娃可以被jjj套娃套住。定义一串套娃足够长:不可以再添加别的套娃定义一串套娃的空闲体积:ini1+(ini2−o...原创 2019-07-23 18:59:50 · 325 阅读 · 2 评论 -
【最大子矩阵+前缀和】F:Painting the Barn 2
题目链接http://acm.zjnu.edu.cn/CLanguage/showproblem?problem_id=2310题意:在一个200*200的地上,已经画了若干个矩形。再画两个不相交的矩形,使得覆盖k次的面积最大。问面积最大是多少题解:先做一次差分的二维前缀和进行染色,计算出已经覆盖k次的情况。如果再此基础上在覆盖,已经覆盖k次的贡献是-1,覆盖k-1次的贡献是1,其余...原创 2019-07-16 20:35:59 · 845 阅读 · 0 评论 -
【区间最小值 - 双向队列】Codeforces - 1195 - E. OpenStreetMap
题目链接http://codeforces.com/problemset/problem/1195/E题意给出一个n∗mn*mn∗m的大矩阵,求所有a∗ba*ba∗b的子矩阵最小值的和。题解维护一个数组dp[i][j]表示第原数组mp[i][j]~mp[i+a-1][j]的最小值。然后横者维护一遍,就可以得出答案。维护区间最小值,可以用deque维护,保证队内数值递增。#inc...原创 2019-07-23 22:01:06 · 149 阅读 · 0 评论 -
【主席树 + 三角形构造】HDU - 6601 - Keen On Everything But Triangle
题目链接http://acm.hdu.edu.cn/showproblem.php?pid=6601题意给出一个数组,有若干次询问。每次询问一个区间,在区间内挑出能组成三角形的三个数字,问三角形周长最大是多少。题解从最大的数字开始考虑,每次取紧邻的三个,如果存在三角形就输出。最坏的情况下,数组是个斐波那契数列,这样只要取44个最大数就行了。所以每次主席树暴力扫出前50个最大数,然后...原创 2019-07-24 19:11:18 · 342 阅读 · 0 评论 -
【分治 / 玄学尺取】2019牛客暑期多校训练营(第三场) - G - Removing Stones
题目链接https://ac.nowcoder.com/acm/contest/883/G题意给出n堆石子,每次可以从两堆石子里面各取出一个,如果能去光就获胜。如果总数是奇数,可以先从任意一个最小堆选走一颗石子。问有多少个区间(l,r),使得只在这个区间内取石子,能获胜。题解直接上官方题解#include<bits/stdc++.h>using namespace ...原创 2019-07-26 13:18:21 · 132 阅读 · 0 评论 -
【线段树】HDU - 6602 - Longest Subarray
题目链接http://acm.hdu.edu.cn/showproblem.php?pid=6602题意给出一个数组,问你最长的子区间,使得区间内的元素要么不出现,要么至少出现k次。题解#include<bits/stdc++.h>using namespace std;typedef long long ll;const int N=1e5+7;int t[N...原创 2019-07-26 16:52:22 · 207 阅读 · 0 评论 -
【字典树】HDU - 6625 - three arrays
题目链接http://acm.hdu.edu.cn/showproblem.php?pid=6625题意给出数组a,b。数组c[i]=a[i]^b[i],要求改变数组a,b的排列,使得c的字典序最小。题解如果a[i]^b[j]<=a[i]^b[k] (1<=k<=n),则a[i]指向b[j]这样会有两个结论:如果当前a[i]指向b[j],且b[j]指向a[i],...原创 2019-08-05 22:20:42 · 114 阅读 · 0 评论 -
【LIS + 随机数据】HDU - 6635 - Nonsense Time
题目链接http://acm.hdu.edu.cn/showproblem.php?pid=6635题意给出一串数,一开始没有一个数可用。每次选一个数变成可用,问此时的最长上升子序列是多少。题解结论:数字随机的LIS长度期望时n\sqrt{n}n所以反过来做,时间复杂度就是O(nnlog(n))O(n\sqrt{n}log(n))O(nnlog(n))#include<...原创 2019-08-08 20:33:27 · 213 阅读 · 0 评论 -
【约瑟夫环】2018-2019 ACM-ICPC, Asia Shenyang Regional Contest - K - Let the Flames Begin
题目链接https://codeforces.com/gym/101955/problem/K题意给出一个长度为nnn的约瑟夫环,标号为kkk的人被淘汰。问第mmm个人淘汰的初始标号。1≤n,m,k≤1e181\leq n,m,k \leq 1e181≤n,m,k≤1e18,∑min(m,k)≤2e6\sum{min(m,k)}\leq 2e6∑min(m,k)≤2e6题解初始标号如...原创 2019-08-13 19:38:49 · 352 阅读 · 0 评论 -
【定期重构】2019牛客暑期多校训练营(第八场)- D - Distance
题目链接https://ac.nowcoder.com/acm/contest/888/D题意在一个三维空间(n,m,h),做两种操作:添加一个标记点询问所有标记点距离(x,y,z)最小的曼哈顿距离题解#include<bits/stdc++.h>using namespace std;typedef long long ll;const int mod=...原创 2019-08-12 21:17:46 · 294 阅读 · 0 评论 -
【折半 + 高维前缀和】The 2019 Asia Yinchuan First Round Online Programming? - K - Vertex Covers
题目链接 https://nanti.jisuanke.com/t/41295题意给出一个n个点的图(n<=36),定义一个点覆盖的价值是所有点权值的积,问所有点覆盖的价值的和是多少。题解看错题好难受。折半,把n拆成左右两半。枚举左边点的情况,对于合法情况(包含所有 端点都在左边的边),处理出来,并用高维前缀和做一个统计。对于右边对于合法情况也处理出来,对于每种合法情况,如果...原创 2019-09-01 21:19:43 · 193 阅读 · 0 评论 -
【线段树】The 2019 Asia Yinchuan First Round Online Programming?- L - Continuous Intervals
题目链接https://nanti.jisuanke.com/t/41296题意给出一个序列,统计区间值域是连续的个数题解对于一段区间,如果max[l,r]−min[l,r]+1=cnt[l,r]max[l,r]-min[l,r]+1=cnt[l,r]max[l,r]−min[l,r]+1=cnt[l,r],那么这段区间就是符合条件的。枚举右端点rrr,那么就是要统计多少个lll,使...原创 2019-09-02 15:40:38 · 211 阅读 · 0 评论 -
【欧拉序】The Preliminary Contest for ICPC Asia Xuzhou 2019 - F - Little M's attack plan
题目链接https://nanti.jisuanke.com/t/41388题意给出一棵树,每个点都有一个权值。Q次询问,每次询问一个点v和k,输出所有距离点v不超过k的点权值和。题解很精妙的想法。先考虑另一个问题,查询子树v内距离点v不超过k的权值和f(v,k)。在欧拉序上遍历,如果该点有询问f(v,k),在树状数组上查询比点v深度大于等于k的权值和,欧拉序会一个点被访问两次,后...原创 2019-09-08 19:56:14 · 298 阅读 · 0 评论 -
【贪心+DP】Redistricting
题目链接<http://10.7.88.2/CLanguage/showproblem?problem_id=2245>题意:给你一段由‘H’和‘G’组成的字符串,要把这个字符串分成若干段,每段的长度最大是k。如果某一段内G的数量大于等于H的数量,那么这一段就要被计数,问计数最少是多少。题解:贪心+DP,这个贪心能够很巧妙的用优先队列解决。dp[i]表示第i位的答案...原创 2019-03-05 10:33:28 · 189 阅读 · 0 评论 -
【01分数规划+01背包】Talent Show
题目链接<http://10.7.88.2/CLanguage/showproblem?problem_id=2268>题意:给出n头奶牛的重量w和才艺值t,要求挑出若干只牛,使得大于等于w,且最大。题解:01分数规划:设,则,如果,证明偏小,否则偏大。这样就可以二分答案了。判断的时候用01背包来判断能否挑出一些体重之和大于等于的奶牛,且。这时候的背包就只要枚举...原创 2019-03-13 16:07:03 · 249 阅读 · 0 评论 -
【卡常】2284 - NLO
题目链接<http://acm.zjnu.edu.cn/CLanguage/showproblem?problem_id=2284>题意:在一个n*m的矩形中,每次会长长度为1的草。有k个UFO降临,会把严格在圆形范围内的草割光。问最后地面上还剩多少的草。1<=n,m<=1e5,1<=k<=100题解:对于圆的面积,只能考虑每一行被覆盖的长度...原创 2019-03-25 13:17:03 · 295 阅读 · 0 评论 -
【线段树】Codeforces - 1136 - E. Nastya Hasn't Written a Legend
题目链接<http://codeforces.com/contest/1136/problem/E>题意:有一串数组a和数组k,数组初始保证a[i]+k[i]≤a[i+1]。一共有两种操作:查询区间和 对第i位加上x,如果a[i]+k[i]>a[i+1],则a[i+1]=a[i]+a[k],并一直往后。题解:一个数组本身,第i位表示的是第i位取1次的值;...原创 2019-03-21 15:28:03 · 190 阅读 · 0 评论 -
A. Srdce and Triangle “今日头条杯”首届湖北省大学程序设计竞赛(网络同步赛)
题目连接<https://www.nowcoder.com/acm/contest/104/A>题意:在一个正三角形ABC中取一点D,给出.均已知,递增的输出由AD,BD,CD组成的三角形的各个角大小。题解:顺时针旋转ABD 60°,根据初中数学知识得出……#include <iostream>#include <stdio.h>#include <m...原创 2018-04-23 13:32:06 · 185 阅读 · 0 评论 -
单调队列/单调栈 HDU 6319 Ascending Rating (杭电多校第三场A)
题目链接<http://acm.hdu.edu.cn/showproblem.php?pid=6319>题意:按照一定规律,给出n个数。以m个数作为一个区间的大小,一共有n-m+1个区间。对于每个区间,初始的max和cnt都记为0,从左往右数,如果遇到一个数大于max,max值修改为该值,cnt++。再按照一定的规律输出答案。题解:单调队列与单调栈能满足严格的单调性,而...原创 2018-07-31 12:24:28 · 201 阅读 · 0 评论 -
Gym - 100694B - Far Manager
题目链接<http://codeforces.com/gym/100694/problem/B>题意:一共有n个文件标号为(1——n),另外还有一个0号文件,每p个文件占一列。初始的光标在0号文件,有上下左右四个键,上下可以使光标上移或下移(选择的文件标号减少或增加1)。左右可让光标在列中切换(选择的文件标号减少或增加1)。如果你在最后一列再按一次右键,光标会选择最后一个文件。...原创 2018-07-31 13:12:17 · 259 阅读 · 0 评论 -
Gym - 100971J - Robots at Warehouse
题目链接<http://codeforces.com/gym/100971/problem/J>题意:在一个地图上有1和2两个机器人,每个机器人只能走四周的格子,也可以不走,如果是墙则不能走。问能不能把1和2的位置进行交换。地图中除了墙,所有的点之间都是可以互相到达的。题解:1)首先,如果存在下图所示的一个岔路口,那么一定满足情况,假设1号机器人从左边来,2号机器人从右...原创 2018-07-31 13:49:29 · 185 阅读 · 0 评论 -
Gym - 100971M - Decomposition into Good Strings - O(n)算法
题目链接<http://codeforces.com/gym/100971/problem/M>题意:给出一个字符串,把这个字符串分成m段,段与段之间首尾相连。每段中包含的不同的字母个数恰好为k,问m最小是多少。题解:这里介绍一位神犇的O(n)算法。设一个num数组记录当前段中,各个字符出现的个数;cnt表示所选字符串不同字符的个数。dp[i]数组表明字符串第i个字...原创 2018-07-31 14:26:06 · 185 阅读 · 0 评论 -
HDU - 6396 - 杭电多校第七场 - Swordsman
题目链接<http://acm.hdu.edu.cn/showproblem.php?pid=6396>题意:一共有n只怪物,每个怪物都有k个属性。如果你的每个属性都高于怪物的,那你就可以把它杀死,你的属性也能获得相应的提升。问你最多能杀死几只怪物,和最后的自身属性。题解:这题时间卡的非常紧,一定一定一定要用优秀的输入挂。设k个数组记录对应的怪物id和对应的属性大小...原创 2018-08-13 19:03:39 · 159 阅读 · 0 评论 -
【最远曼哈顿距离】HDU - 6435 -杭电多校第十场 - Problem J. CSGO
题目链接<http://acm.hdu.edu.cn/showproblem.php?pid=6435>题意:有n个主武器,m个副武器。每个武器都有一个攻击力,和k个属性。要选择一个主武器和一个副武器组合,使得最后的攻击力最大。攻击力计算方法:属性之差的绝对值之和加上两个武器的攻击力。题解:利用最远曼哈顿距离的套路计算。一个维度曼哈顿距离是|x1- x2|。将绝...原创 2018-08-22 20:36:19 · 193 阅读 · 0 评论 -
【树上点对距离和】HDU - 6446 - 2018CCPC - 网络选拔赛 - Tree and Permutation
题目链接<http://acm.hdu.edu.cn/showproblem.php?pid=6446>题意:给出一个n个节点的树。对于1~n的全排列计算价值和,每一个排列的价值为按排列顺序走的权值和。题解:很容易得知每一种点对距离出现的次数为2*(n-1)!,只要算出所有的点对距离和再乘上2*(n-1)!就是答案。我们考虑点对距离和中每条边出现的次数。如果把边...原创 2018-09-01 21:45:47 · 516 阅读 · 0 评论 -
【二进制优化】Codeforces - 1041 - F. Ray in the tube
题目链接<http://codeforces.com/contest/1041/problem/F>题意:在两个反射面上取一点发射一道激光,两个反射面上装了一些传感器,问最多有几个传感器能接收到激光。题解:首先,题目给出了反射面的纵坐标,这是没有用的,我们只需要考虑横坐标的距离即可。然后总体思路是:1)枚举步长。2)处理出每个点在此步长下的状态,并用map记...原创 2018-09-17 13:17:15 · 358 阅读 · 0 评论 -
Codeforces - 1053 - A. Vasya and Triangle
题目链接<http://codeforces.com/contest/1053/problem/A>题意:问能否选取三个点,(x1,y1) (x2,y2), (x3,y3),且0≤x1,x2,x3≤n, 0≤y1,y2,y3≤m。使得三个点组成的三角形面积为n*m/k。如果可以,输出任意三个点即可。题解:首先可以发现,如果2*n*m%k不等于零那就肯定不可以。至于...原创 2018-10-18 10:51:13 · 145 阅读 · 0 评论 -
Codeforces - 1053 - B. Vasya and Good Sequences
题目链接<http://codeforces.com/contest/1053/problem/B>题意:定义一个操作:把数字中的两位进行交换。给出一个序列,问存在多少个子区间,对区间内的数字进行无限次操作后使得区间内数字的异或和为0。计算符合条件的区间数。题解:如果一个区间内1的个数和为奇数那一定不可取。对于偶数的情况,如果1的个数最大的数小于等于其余数字之和,就...原创 2018-10-18 13:09:00 · 130 阅读 · 0 评论 -
Gym - 101889J - Jumping Frog
题目链接<http://codeforces.com/gym/229829/attachments>题意:给出一个循环字符串,R代表可以走,P代表不可以走。问有多少个步长,使得从某一点出发能回到原点。题解:因为是回到原点,所以可以只考虑每个因子。如果一个因子确定是可以的,那么它的倍数也就都可以了。#include<bits/stdc++.h>usin...原创 2018-10-10 13:21:56 · 382 阅读 · 0 评论 -
Gym - 101806W - Winter Olympic Games
题目链接<https://cn.vjudge.net/problem/1595745/origin>题意:给出一段01串,要求把其中一段的子串替换成一个1,使得新得到的串字典序最大。输出要替换的子串。题解:贪心的想,最开始的几个连续的1不要碰,后面找一个字典序最大的后缀也保留,把中间的串替换掉。这样直接套一个后缀数组就能过了。比赛的时候我没用后缀数组,自己想了一个算...原创 2018-11-26 12:14:43 · 233 阅读 · 0 评论 -
字节跳动冬令营网络赛 - B - Origami
题目链接<https://ac.nowcoder.com/acm/contest/296/B>题意:在一张长度为n的纸片上从左到右写上1~n的数字。每次从左或从右反复折叠,使得最后只有一个单位的长度。这样从上到下就会得到一个序列。给出一串序列问能否最后折叠出来。题解:直接画一下纸张折叠最后形成的样式,就可以发现题目可以翻译成:给出左右两串区间,要求每一串区间之间可以包含...原创 2018-12-01 19:23:51 · 758 阅读 · 3 评论 -
2279 - Maja
题目链接<http://10.7.88.2/CLanguage/showproblem?problem_id=2279>题意:给出一张矩阵,每个点都有一定的权值。要求从起点出发走一条路并回到原点,步数小于等于k,问路径上的权值和最大是多少。题解:因为要回来,所以k可以直接除以2。可以想象,如果k足够大,应该会在两个地方反复循环。所以我们可以枚举每个点,与它循环的点肯...原创 2019-03-24 20:21:15 · 159 阅读 · 0 评论