Educational Codeforces Round 58 (Rated for Div. 2) (前两题题解)
感慨
这次比较昏迷最近算法有点飘,都在玩pygame。。。做出第一题让人hack了,第二题还昏迷想错了
A Minimum Integer(数学)
水题,上来就能做出来但是让人hack成了tle,所以要思考一下具体的过程
原本我是认为直接把d进行累加看什么时候不在那个segment内也就是那个范围之内结果tle
今天思考一下发现有两种情况
①如果d本来就是小于左边界的那么就输出d就可以了,因为样例明确提示有原来的数也可以
②然后就是如果d在范围之内或者范围外可以用余数来确定具体的数公式是:
ans=r+d-r%d
如何说明其正确性呢?
首先AC了(。。。。)
其次先说明如果d大于r那么这个公式输出d没有任何问题
然后再说明特例d在segment内,那么ans一定大于r,要找最小的ans那么就需要找离r最小的数,所以先余数余一下看看ans距离r的一个距离然后再用特例去验证一下发现了这个公式成立(这也不算证明。。。)
代码
#include <bits/stdc++.h>
using namespace std;
int main()
{
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int n;
cin>>n;
while(n--)
{
int l,r,d;
cin>>l>>r>>d;
if(d<l)
cout<<d<<"\n";
else
{
int k=r%d;
cout<<r+d-k<<"\n";
}
}
}
B Accordion(字符串模拟)
昨天昏迷了忘记了一个右括号可以包含的问题今天上来借助着数据的力量把这个题A了,这个题数据就有进600组。。。还是模拟题着实是一道不错的题,很考验细节能力
首先按照特例先说一下-1的情况
(1)-1的情况
①没有出现左括号
②没有出现右括号
③两个括号中间的冒号少于两个
接着说一下具体的判定的思路实现自己来或者看代码
(2)最大值的计算
①首先要想一下什么时候会出现最大值那么不就是要在最大的两个合法的冒号内有最多的竖线吗?这个合法又是什么意思?
合法的意思就是两个冒号外面还有两个相应的闭合的中括号。所以有了思路我们的目标就明确了
就是去找合法的最大的冒号区域以及其中的竖线最后的答案就是4+区域内竖线的个数
代码
#include <bits/stdc++.h>
using namespace std;
int bk1[666666],bk2[666666],bk3[666666],bk4[666666],p1,p2,p3,p4,ans,sum,rt;
int main()
{
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
string a;
cin>>a;
for(int i=0;i<a.size();i++)
{
if(a[i]=='[')
bk1[p1++]=i;
if(a[i]==':')
bk2[p2++]=i;
if(a[i]==']')
bk3[p3++]=i;
}
for(int i=0;i<p2;i++)
if(bk2[i]>bk1[0]&&bk2[i]<bk3[p3-1])
ans++,bk4[p4++]=bk2[i];
if(ans<2||p1==0||p3==0)
return cout<<-1,0;
for(int i=p3-1;i>=0;)
{
if(bk4[p4-1]<bk3[i])
{
rt=bk4[p4-1];
break;
}
else
p4--;
}
for(int i=bk4[0];i<rt;i++)
if(a[i]=='|')
sum++;
cout<<4+sum;
}
Educational Codeforces Round 58 (Rated for Div. 2) (前两题题解)的更多相关文章
- Educational Codeforces Round 58 (Rated for Div. 2) 题解
Educational Codeforces Round 58 (Rated for Div. 2) 题目总链接:https://codeforces.com/contest/1101 A. Min ...
- Educational Codeforces Round 58 (Rated for Div. 2) F dp + 优化(新坑) + 离线处理
https://codeforces.com/contest/1101/problem/F 题意 有n个城市,m辆卡车,每辆卡车有起点\(s_i\),终点\(f_i\),每公里油耗\(c_i\),可加 ...
- Educational Codeforces Round 58 (Rated for Div. 2) D 树形dp + 数学
https://codeforces.com/contest/1101/problem/D 题意 一颗n个点的树,找出一条gcd>1的最长链,输出长度 题解 容易想到从自底向长转移 因为只需要g ...
- Educational Codeforces Round 58 (Rated for Div. 2) G 线性基
https://codeforces.com/contest/1101/problem/G 题意 一个有n个数字的数组a[],将区间分成尽可能多段,使得段之间的相互组合异或和不等于零 题解 根据线性基 ...
- Educational Codeforces Round 58 (Rated for Div. 2)
A. Minimum Integer 水 #include<bits/stdc++.h> #define clr(a,b) memset(a,b,sizeof(a)) using name ...
- Educational Codeforces Round 76 (Rated for Div. 2)E(dp||贪心||题解写法)
题:https://codeforces.com/contest/1257/problem/E 题意:给定3个数组,可行操作:每个数都可以跳到另外俩个数组中去,实行多步操作后使三个数组拼接起来形成升序 ...
- Educational Codeforces Round 92 (Rated for Div. 2) B、C题解
TAT 第一场codeforces B. Array Walk #暴力 #贪心 题目链接 题意 有\(a1, a2, ..., an\) 个格子(每个格子有各自分数),最初为1号格(初始分数为\(a1 ...
- 【Educational Codeforces Round 38 (Rated for Div. 2)】 Problem A-D 题解
[比赛链接] 点击打开链接 [题解] Problem A Word Correction[字符串] 不用多说了吧,字符串的基本操作 Problem B Run for your prize[贪心] ...
- Educational Codeforces Round 59 (Rated for Div. 2) (前四题)
A. Digits Sequence Dividing(英文速读) 练习英语速读的题,我还上来昏迷一次....只要长度大于2那么一定可以等于2那么前面大于后面就行其他no 大于2的时候分成前面1个剩下 ...
随机推荐
- java获取操作系统的MAC地址和硬盘序列号
1.判断操作系统是Windows还是Linux private static Boolean isLinux() { String os = System.getProperty("os.n ...
- bzoj P2045 方格取数加强版【最大费用最大流】
今天脑子不太清醒,把数据范围看小了一直TTTTLE-- 最大费用最大流,每个格子拆成两个(x,y),(x,y)',(x,y)向(x,y)'连一条费用a[x][y]流量1的边表示选的一次,再连一条费用0 ...
- bzoj 1607: [Usaco2008 Dec]Patting Heads 轻拍牛头【瞎搞】
某种意义上真毒瘤?我没看懂题啊...于是看了题解 就是筛约数的那种方法,复杂度调和级数保证O(nlogn) 所以这题啥意思啊 #include<iostream> #include< ...
- CCF2016.4 - B题
思路:创建两个bool数组来模拟下落过程,一个存放面板状态,一个存放下落的格子.检测格子和面板对应位置是否同时为True,如果是则有冲突,不能继续下落,否则增加行号.为了统一处理,我们把面板最下面加一 ...
- Ocelot(六)- 架构图
简介 Ocelot是一个用.NET Core实现并且开源的API网关,它功能强大,包括了:路由.请求聚合.服务发现.认证.鉴权.限流熔断.并内置了负载均衡器与Service Fabric.Butter ...
- Docker+Jenkins+Git发布SpringBoot应用
Doccker Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之 ...
- c语言程序设计案例教程(第2版)笔记(一)—零散、输入输出、最小公倍数、选择排序、冒泡排序
零散知识点: 非格式化输入输出:getchar().putchar() 格式化输入输出 :scanf().printf() 字符串输入输出 :gets() 或 scanf().puts() 或 ...
- [POI2001]Gra绿色游戏
Description 绿色游戏是一种两人游戏,双方分别称Ann和Billy.游戏的内容主要是轮流在棋盘上移动一颗棋子.棋盘上的点一部分是绿色的,其余是白色的:全部从1至a+b编号.编号1至a的点属于 ...
- 2017 JUST Programming Contest 3.0 B. Linear Algebra Test
B. Linear Algebra Test time limit per test 3.0 s memory limit per test 256 MB input standard input o ...
- Codeforces Round #318 [RussianCodeCup Thanks-Round] (Div. 2)
以后每做完一场CF,解题报告都写在一起吧 暴力||二分 A - Bear and Elections 题意:有n个候选人,第一个候选人可以贿赂其他人拿到他们的票,问最少要贿赂多少张票第一个人才能赢 ...