![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
其他
不哭的超人
愿你孤独的努力终有回报,愿你前行的路上有人相伴。
展开
-
C. Everyone is a Winner!
题目:C. Everyone is a Winner!总结:时间有点长935ms。这题我是先是分块。然后对于每一个分块区间再进行操作。需要用个map,防止有重复的插入,因为每重复插入一个耗时就logn。分块区间从后往前操作,使答案的顺序从小到大。#include <bits/stdc++.h>using namespace std;const int N = 5e5+10;...原创 2019-11-30 21:17:30 · 376 阅读 · 0 评论 -
问题 E: 加加减减
题目描述众所周知,小葱同学擅长计算,尤其擅长计算组合数,但这个题和组合数没什么关系。小葱同学最近醉心于动态规划的研究,他苦学百年,已经牢牢掌握了加法和减法是怎么运算的。所以小葱同学造了N个数a1,a2,⋯,aN,他希望对每个数加上或者减去K,使得操作之后的最大值减去最小值的差最小。输入第一行两个数N,K。接下来一行N个数代表a1,a2,⋯,aN。输出一行一个数代表答案。样例输入 C...原创 2019-11-27 19:10:40 · 689 阅读 · 0 评论 -
E-「火」烈火燎原
题目:E-「火」烈火燎原总结:挺简单的,还想了老半天。如果知道一个树每个点的度有多少,那么就知道了其子树边有多少条。而其子树的边等于其子树的子树的顶点。#include <bits/stdc++.h>using namespace std;typedef long long ll;const int N = 100005;int n;ll degree[N];ll ...原创 2019-11-26 19:48:48 · 199 阅读 · 0 评论 -
D. Feeding Chicken(模拟)
题目:D. Feeding Chicken总结:要极大与极小的差最小,那么只有可能是0或者1。下面就是蛇形走位。分成k块,每一块最少要有cnt/k,并且要连续。#include <bits/stdc++.h>using namespace std;const int N = 115;int g[N][N];char ans[N][N];int n,m,k;string...原创 2019-11-22 00:18:33 · 381 阅读 · 0 评论 -
E1. Send Boxes to Alice (Easy Version)
题目:E1. Send Boxes to Alice (Easy Version)总结:sum是n个数的和,可以显然是根据sum的质因子来分配,如果是质因子的倍数,那么一定没有比质因子更优解。然后连续选择和为质因子的一组,去他们的中心距离。#include <bits/stdc++.h>using namespace std;typedef long long ll;cons...原创 2019-11-21 19:20:57 · 334 阅读 · 0 评论 -
C. League of Leesins
题目:C. League of Leesins总结:位于起始点和终点肯定是只出现了一次,所以只需要枚举两种情况,然后看看哪一个能走到底。#include <bits/stdc++.h>using namespace std;typedef pair<int,int>P;const int N = 1e5+5;map<P,vector<int>...原创 2019-11-21 12:58:51 · 524 阅读 · 0 评论 -
B. Fridge Lockers
题目:B. Fridge Lockers思考:题目要求的是每一个点最少要有两条边连接,所以可以先构成一个环。然后再把剩余的最短的边连接起来。#include <bits/stdc++.h>using namespace std;const int N = 1005;int n,m;struct str{ int pos; int w;}a[N];bo...原创 2019-11-20 21:18:56 · 495 阅读 · 0 评论 -
问题 B: 乘积求和
题目描述众所周知,小葱同学擅长计算,尤其擅长计算组合数,但这个题和组合数没什么关系。小葱同学自幼学习乘法和加法,并且小葱同学意识到,正是因为有了加法和乘法,才能够计算1+1=2和1×1=1这种高深的问题。现在小葱给你N个数a1,a2,⋯,aN,求下列式子的值:输入第一行一个数N。接下来一行N个数代表a1,a2,⋯,aN。输出一行一个数代表答案对1012+7取模之后的结果。样例输入...原创 2019-11-18 21:13:12 · 495 阅读 · 0 评论 -
C. Sweets Eating
题目:C. Sweets Eating总结:这题可以先举几个栗子,然后就可以找到其中的规律了,利用前缀和。#include <bits/stdc++.h>using namespace std;typedef long long ll;const int N = 1e6+10;int n,m;ll sum[N],a[N];int main(){ scanf(...原创 2019-11-17 23:29:50 · 730 阅读 · 0 评论 -
B. Silly Mistake(模拟、思维)
题目:B. Silly Mistake总结:这题我wa了11发,用vis防止每轮出现重复的,如果每一轮有重复的,那么就直接输出-1。如果没有出现的话,那么就在vis做上标记。判断a[i]>0,那么就先放在b里面,如果出现一个负数,判断它的正数是否出现在b里面,如果没有的话,就直接输出-1。有的话就可以把这个删除。因为题目没有要求极大或者极小 。那么只要b为0,并且vis不为空就可以加进去了...原创 2019-11-17 16:47:32 · 902 阅读 · 0 评论 -
问题 A: 增量幻境
哎!这几天因为选队友的问题。搞的我心烦意乱,加上还要去完成老师布置的任务,烦死了。题目:问题 A: 增量幻境总结:这题先找到第一个s[i]<s[i-1],那么这时侯考虑的就是将s[i-1]-1,然后后面再全部为9,就是答案了。但是s[i-1]可能等于s[i-2],那么要s[i-1]-1<s[i-2],所以可以往前一直找到s[p] != s[i-1],再p++。将s[p]-1;后面的...原创 2019-11-17 13:47:56 · 143 阅读 · 0 评论 -
E. The Contest
题目:E. The Contest总结:可以建立一个数组,三种情况分别对应a[x] = 1,a[x] = 2,a[x] = 3;因为题目要求的是最少移动几次,那么就可以用k1+k2+k3-最长不下降子序列的个数。#include <set>#include <cstdio>#include <algorithm>using namespace std;...原创 2019-11-14 20:32:28 · 222 阅读 · 0 评论 -
问题 C: 战略威慑(树的直径)
时间限制: 1 Sec 内存限制: 128 MB提交: 15 解决: 6[提交] [状态] [命题人:admin]题目描述马奥雷利亚诺布恩迪亚上校发动了他的第三十二次战争,让我们祝他好运。马孔多附近有n个城市,有n-1条双向道路连通这些城市。上校想通过摧毁两条公路的方式对当局予以威慑。但是上校的老师告诉他为了战略目的这两条路不可以有共同的城市。这次行动对当局的威慑效果将等于两条路径的长...原创 2019-11-13 15:14:32 · 252 阅读 · 0 评论 -
D-query(莫队)
题目:D-query总结:也是一道莫队模板题吧!#include <algorithm>#include <cstdio>#include <cstring>#include <cmath>using namespace std;typedef long long ll;const int N = 1010000;struct s...原创 2019-11-11 18:41:33 · 132 阅读 · 0 评论 -
P2709 小B的询问
题目:P2709 小B的询问总结:莫队模板#pragma GCC optimize(2)#include <algorithm>#include <cstdio>#include <cmath>using namespace std;typedef long long ll;const int N = 5e4+10;struct str{ ...原创 2019-11-11 13:54:05 · 139 阅读 · 0 评论 -
数列分块入门 5
题目:数列分块入门 5总结:因为是开根,所以当一个数开过几次根,那么一定变成0或者1,。tag是用来标记在一块里是否所以数都变成了0或者1。sum保存的是某一块里的值。#include <algorithm>#include <cstdio>#include <cmath>#include <vector>using namespace ...原创 2019-11-10 19:23:31 · 241 阅读 · 0 评论 -
#6279. 数列分块入门 3
题目:#6279. 数列分块入门 3总结:分块模板吧,但有一些细节需要注意。需要注意一下懒惰标记。而且题目数据可以加强一下,#include <algorithm>#include <cstdio>#include <cmath>#include <vector>using namespace std;typedef long long...原创 2019-11-10 16:18:25 · 208 阅读 · 0 评论 -
#6278. 数列分块入门 2
题目:#6278. 数列分块入门 2总结:先进行分块。add数组相当于是的懒惰标记。是按照块相加的。只是对于一些整个块没有被覆盖的,才进行单独处理。感觉更像是优化的暴力。#include <algorithm>#include <cstdio>#include <cmath>#include <vector>using namespace...原创 2019-11-10 13:32:51 · 187 阅读 · 0 评论 -
A Simple Problem with Integers(分块模板题)
题目:A Simple Problem with Integers #include <algorithm>#include <cstring>#include <cstdio>#include <cmath>using namespace std;typedef long long ll;const int N = 1e5+...原创 2019-11-09 23:14:37 · 476 阅读 · 0 评论 -
问题 H: Hamster’s Sequence
题目:问题 H: Hamster’s Sequence总结:这题有两种方法,一种是算暴力吧,还有一种是莫队。莫队我还没学,打算学一下。先用getprime将小于原创 2019-11-08 22:35:45 · 196 阅读 · 0 评论 -
激光炸弹
题目:激光炸弹总结:利用的是二维数组前缀和,a[i]][j]表示的是从1,1~i,j之间的大小,用这个公式求a[i][j] += a[i][j-1]-a[i-1][j-1]+a[i-1][j];,然后再用这个公式求出每个r的方块的大小ans = max(ans,a[i][j]-a[i-r][j]-a[i][j-r]+a[i-r][j-r]);。遍历找最大的#include <stdio....原创 2019-11-05 17:24:16 · 125 阅读 · 0 评论