![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
模拟
_Rikka_
- v -
展开
-
天梯赛--6翻了(字符串处理)
天梯—6翻了“666”是一种网络用语,大概是表示某人很厉害、我们很佩服的意思。最近又衍生出另一个数字“9”,意思是“6翻了”,实在太厉害的意思。如果你以为这就是厉害的最高境界,那就错啦 —— 目前的最高境界是数字“27”,因为这是 3 个 “9”!本题就请你编写程序,将那些过时的、只会用一连串“6666……6”表达仰慕的句子,翻译成最新的高级表达。输入格式:输入在一行中给出一句话,即一个非空字符串,由不超过 1000 个英文字母、数字和空格组成,以回车结束。输出格式:从左到右扫描输入的句子:如果原创 2021-04-24 00:43:19 · 306 阅读 · 0 评论 -
蓝桥杯 跑步锻炼
思路模拟即可Code#include <iostream>using namespace std;int main(){ int ans=0,sum=5; for(int i=2000;i<=2020;i++) { for(int j=1;j<=12;j++) { if(i==2020&&j>=11)break; for(int k=1;k.原创 2021-04-17 23:54:04 · 139 阅读 · 0 评论 -
1498C - Planar Reflections (暴力+前缀和+模拟)
题目思路:模拟一下过程,有n个平面,那么在一次飞跃中位于第1个平面的粒子向右飞会在后面每个平面都产生一个粒子,那第一个平面有m个粒子后面每个平面2–n都产生m个粒子,同理第二个平面的每个粒子也会对其后面的所有平面产生一个粒子。然后最共会裂变n-1次进行这么多次飞跃,要分一下飞往右再变换一下飞往左。再来看一下数据大小n<=1000,k<=1000。如果直接暴力模拟 O(n^3),但对于给第i个平面后面所有平面粒子+1的操作可以用前缀和处理,复杂度变为 O(n^2),细节见代码。Code:#原创 2021-03-30 14:17:17 · 217 阅读 · 0 评论 -
1469C Building a Fence
题目思路:每一次求取一个范围,然后判断之后的小方格是否满足范围。对于最后和第一个方格已经取定,需要特殊判断,细节见代码。Code:#include<iostream>#include<string>#include<map>#include<algorithm>#include<memory.h>#include<cmath>#define pii pair<int,int>#define FAST io原创 2020-12-30 01:08:30 · 685 阅读 · 0 评论 -
Game with Chips(思维)
题目思路:一开始看题时表示很懵,觉得很难,情况也很复杂。想不出来,突然想起队友通过看其他人提交过的时间和空间找题目眉头,然后我也去看了一下staus,发现过题的时间30ms,空间0kb,发现这题绝壁不要模拟或dp之类的,是一道思维题。然后往巧妙的方法考虑,发现其实只要先将所有的点全部移到左上方O(n+m),然后全部遍历一次O(n*m)就够了(题目中还突出说明了,点可以都在一个格子,然后点碰壁之后停留,给的次数为2mn,其实暗示也很明显了。。),细节见代码。#include<iostream>原创 2020-12-14 23:46:38 · 189 阅读 · 1 评论 -
B. Planet Lapituletti(模拟)
题目思路:直接暴力从给出的时间一分钟一分钟加到第二天,判断条件为:如果之前时间有3,4,6,7,9直接排除(倒转后改时间无效),如果倒转后时间大于给出的时间范围也无效(倒转中单个数字变化为2->5 5->2 1,0,8不变,再让全部数字倒置一下),如果有满足条件则输出,没有则输出00:00.Code:#include<iostream>#include<cmath>#include<iomanip>#include<algorithm>原创 2021-03-07 01:19:02 · 480 阅读 · 0 评论 -
C. Covered Points Count (线段问题---差分、排序)
题目两种解法:1.用差分思想,l—r所有点加1用map[l]+1,mdp[r+1]-1表示,前缀和即是当前点所对应覆盖线段数。Code:#include<iostream>#include<stack>#include<map>#include<string>#include<algorithm>using namespace std;typedef long long ll;const int Max = 1e6 + 5;原创 2021-03-06 22:00:57 · 258 阅读 · 0 评论 -
B. Light It Up (前缀和、模拟)
题目预先做好一个所有偶数与前一个数差值和3以后奇数a[i]和前一个数差值的前缀和b[i](代表插入数后的情况),然后遍历插入到所有数后面的情况,假设插入到第i个数那么前i个数的贡献用a[i-1]表示,插入中间的贡献用lst[i]-lst[i-1]-1表示,后面的贡献用b[n+2]-b[i]表示,算出最大贡献即可。Code:#include<iostream>using namespace std;typedef long long ll;const int Max = 1e6 + 5原创 2021-03-06 21:49:00 · 242 阅读 · 0 评论 -
B. Move and Turn
https://codeforces.ml/contest/1459/problem/B思路:当n为偶数,令p=n/2,可以分成走p步竖走p步横,在一个轴中从0开始p步可以到p,p-2,…,0,…,-p.最终有p+1个位置.所以竖和横一起有(p+1)^2个位置。当n为偶数,可以分为p步竖p+1步横,或p+1步竖p步横。故总位置为(p+1)*(p+2)*2。Code: #include<iostream> using namespace std; int main() { i原创 2020-12-25 21:18:38 · 417 阅读 · 4 评论 -
1462D Add to Neighbour and Remove(暴力)
题目思路:可以知道对于n个元素的数组总共只有n种情况,值可以平均分为1份2份3份…n份,那么我们直接暴力枚举,从可以分为n份一直到可以分为一份,假如分为5份,s=总值/5,从开始遍历相加发现有>s的必然不能成功,开始从4份再枚举,如果正好可以分为5份,则直接输出n-5(5份可以不用合并)即为最小操作数,细节见代码。Code:#include<iostream>using namespace std;const int Max = 1e6 + 5;int lst[Max];i原创 2020-12-16 21:46:18 · 321 阅读 · 2 评论 -
1453C Triangles(贪心、模拟)
传送门题意:对于n行m列给定的数组,数组每个元素的值为0-9,我们需要构造出一个三角形,三角形顶点的坐标即为元素所在的行数和列数,三角形三个顶点的元素值应该相同,对于0-9我们需要分别求出每个数字构造出的三角形的面积最大值*2。额外条件:对于构造出的三角形我们要求其一定要有一条边平行于行或列,对于每一个点我们还可以任意指定一个元素使其值变为和自己的值相等以方便构造三角形。思路:首先对于一个给定点我们怎样使得其构造的三角形面积最大呢?我们已经确定了一个点P,然后我们还可以任选一个点使其值和这个点相等,使其原创 2020-12-05 01:38:17 · 2330 阅读 · 5 评论 -
C - Bouncing Ball
C - Bouncing Ball C. Bouncing Balltime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard outputYou’re creating a game level for some mobile game. The level should contain some number of cells aligned i...原创 2020-11-29 17:19:43 · 585 阅读 · 0 评论