EducationalCodeforcesRound62(Div. 2)(A-D题解)
http://codeforces.com/contest/1140/problem/A
题意:一个人看一本解谜书,第 i 个谜题的答案在第 ai 页,他会从头一页一页地翻书,如果今天他看过的所有谜题的答案页他都看过了,那么今天就不看了,否则就要一直往下翻。求解这本书多长时间看完。
思路:模拟即可,不断更新今天看过谜题的答案的最大页码。(这破题也能WA,真的是菜。。。)
1 #include<bits/stdc++.h> 2 using namespace std; 3 4 int a[10005]; 5 int main() 6 { 7 int n; 8 cin >> n; 9 for(int i = 1;i <= n;i ++){ 10 cin >> a[i]; 11 } 12 int ans = 0; 13 int now = 1; 14 while(now <= n){ 15 int maxx = a[now]; 16 while(now != maxx){ 17 now ++; 18 maxx = max(a[now],maxx); 19 } 20 now ++; 21 ans ++; 22 } 23 cout << ans << endl; 24 25 return 0; 26 }
A
http://codeforces.com/contest/1140/problem/B
题意:给一个只含有 '<' 和 '>' 的字符串,如果你经过若干操作能把它的长度变成 1,那么这个串就是好串。
操作包含两个:1、随便拿出一个 '<' ,然后删除在它左边的所有字符,不包括它本身。
2、随便拿出一个 '>' ,然后删除在它右边的所有字符,不包括它本身。
你现在可以直接不通过操作删除任意个字符,问你在最少删除多少个字符后,这个串变成好串。
思路:挺坑的一道题,一看是看错问题以为是括号匹配,WA了之后就没思路了。但是想了一会发现,只要从左找第一个右括号,并且从右找到第一个左括号,看看谁先出现就行了。
1 #include<bits/stdc++.h> 2 using namespace std; 3 4 char a[10005]; 5 int main() 6 { 7 int T; 8 cin >> T; 9 while(T --){ 10 int n;cin >> n; 11 scanf("%s",a); 12 for(int i = 0;i < n;i ++){ 13 if(a[i] == '>'){cout << i << endl;break;} 14 if(a[n - i - 1] == '<'){cout << i << endl;break;} 15 } 16 } 17 18 return 0; 19 }
B
http://codeforces.com/contest/1140/problem/C
题意:给定n,k,然后给定 n 对数字 ai,bi。ai 代表一首歌的长度,bi 代表一首歌的幸福值。要求从这 n should歌里面找到不大于 k 首,使得这个歌单的权值最大。
一个歌单的权值是个单种所有歌曲的总长乘以歌单中最小幸福值。
思路:一开始用的就是贪心,按照幸福值从低到高结构体排序,然后枚举,但是WA掉了。最后找到了一个问题,就是没有处理长度这个变量 ,对于一个已经有的歌单,下一步加入了一个新的幸福值,但是不一定就要抛弃最小的幸福值,应该抛弃的是最小的长度。
所以将队列改成可以排序的优先队列维护歌单就能AC了。
1 #include<bits/stdc++.h> 2 using namespace std; 3 4 struct Node{ 5 int L;int H; 6 friend bool operator<(Node a,Node b){return a.L > b.L;} 7 }a[300005]; 8 9 bool cmp(Node a,Node b){ 10 if(a.H == b.H){return a.L < b.L;} 11 return a.H > b.H; 12 } 13 14 int main() 15 { 16 int n,m; 17 cin >> n >> m; 18 for(int i = 0;i < n;i ++){ 19 cin >> a[i].L >> a[i].H; 20 } 21 sort(a,a + n,cmp); 22 priority_queue<Node> Q; 23 // for(int i = 0;i < n;i ++){ 24 // cout << a[i].L << " " << a[i].H << endl; 25 // } 26 long long sum = 0; 27 long long ans = 0; 28 for(int i = 0;i < n;i ++){ 29 Q.push(a[i]); 30 sum += a[i].L; 31 if(Q.size() > m){ 32 sum -= Q.top().L; 33 Q.pop(); 34 } 35 //cout << a[i].H << " " << sum <<endl; 36 ans = max(ans,sum * a[i].H); 37 } 38 cout << ans << endl; 39 40 return 0; 41 }
C
http://codeforces.com/contest/1140/problem/D
题意:给一个定义为正多边形的权重:在一个正 n 边形内,将所有顶点依次标记为 1,2,3...n 。然后再中间画出 n - 2 条不相交的对角线,那么一个三角形的权重就是三点标记值的乘积,这个多边形的权重就是所有三角形权重的和。求解最小正 n 边形权重。
思路:我认为这题应该是A题。。。只要读懂题就能过。公共顶点一定是 1 ,不断的加上 i * (i + 1) 就行了。
1 #include<bits/stdc++.h> 2 using namespace std; 3 4 5 int main() 6 { 7 int n; 8 cin >> n; 9 long long ans = 0; 10 for(int i = 2;i <= n - 1;i ++){ 11 ans += i * i + i; 12 } 13 cout << ans << endl; 14 15 return 0; 16 }
D
转载于:https://www.cnblogs.com/love-fromAtoZ/p/10657235.html
EducationalCodeforcesRound62(Div. 2)(A-D题解)相关推荐
- Educational Codeforces Round 133 (Rated for Div. 2)(CD题解)
Educational Codeforces Round 133 (Rated for Div. 2)CD题解 过AB补CD C. Robot in a Hallway 题意 题意:现有 2∗m 的方 ...
- Codeforces Round #640 (Div. 4)(ABCDEG题解)
文章目录 A. Sum of Round Numbers B - Same Parity Summands C - K-th Not Divisible by n D - Alice, Bob and ...
- Codeforces Round #198 (Div. 2)A,B题解
Codeforces Round #198 (Div. 2) 昨天看到奋斗群的群赛,好奇的去做了一下, 大概花了3个小时Ak,我大概可以退役了吧 那下面来稍微总结一下 A. The Wall Iahu ...
- Educational Codeforces Round 137 (Rated for Div. 2)A~D题解
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 目录 A. Password B. Permutation Val C. Save the Magazines D. Pro ...
- Codeforces Round #774 (Div. 2)E题题解
Codeforces Round #774 (Div. 2) E. Power Board 题目陈述 有一个n×m(1≤n,m≤106)n\times m(1\le n,m\le10^6)n×m(1≤ ...
- Educational Codeforces Round 110 div.2 A~F题解
视频讲解:BV1254y137Rn A. Fair Playoff 题目大意 有 444 位选手参加比赛,第 iii 位选手的水平为 si(1≤si≤100)s_i(1 \leq s_i \leq 1 ...
- Codeforces Round #635 (Div. 2)(A~D)题解
Codeforces #635 A~D A.Ichihime and Triangle B.Kana and Dragon Quest game C.Linova and Kingdom D.Xeni ...
- Codeforces Round #641 (Div. 2)A~E题解(数论场)
题目大意就是给你一个数执行k次操作,每次加上这个数的最小质因子(除了一以外)变成一个新的数,问最后的数是多少 解题思路:很明显如果一开始是偶数的话就会一直加2加2,如果是奇数的话先找到这个数的质因子一 ...
- 2016-2017 ACM-ICPC Pacific Northwest Regional Contest (Div. 2) 【部分题解】
A:因为删除是不计入操作次数的,所以转化一下就是求最长上升子序列,简单dp. 设dp[i]表示前i个字符能凑成上升子序列的最大长度,dp[i] = max(dp[j]+1, dp[i]) [j < ...
最新文章
- React 表单与事件
- 一种生成不重复数的算法
- Visual Studio配置VLFeat库(一次配置,永久生效)
- python3(七)os模块
- 谷歌五笔输入法电脑版_“五笔输入法”打字速度更快,为什么却没啥人用?
- 关于类、抽象类和接口的继承关系
- Catalan数应用
- java 事务嵌套_解惑 spring 嵌套事务
- 组件注册-@Scope-设置组件作用域
- 剑指Offer之不用加减乘除做加法
- ClientToScreen ScreenToClient GetWindowRect GetClientRect
- 【翻译】用Tempo和Jaeger在Grafana中进行分布式追踪
- 神经网络各种评判指标
- 腾讯第一批开发工程师徐钢武回忆道【曾几何时我真的认为代码是这样的】
- 痞子衡嵌入式:存储器大厂Micron的NOR Flash芯片特殊丝印设计(FBGA代码)
- IgH详解六、IgH命令行工具使用
- 浏览器无法启动百度网盘应用的解决办法
- OpenFire+Spark构建实时协作平台
- 用仿ActionScript的语法来编写html5——第七篇,自定义按钮
- 第八章---《实时语音处理实践指南》盲源分离笔记
热门文章
- asp.net中此页的状态信息无效,可能已损坏的解决之道
- Java判断字符串是否是整数
- find命令查找某些文件并将其拷贝到指定目录
- 【转】X分钟速成c++
- HashMap(Java)
- STM32开发 -- UTC、UNIX时间戳、北京时间之间的转换
- zcmu2012(积性函数---因子和)
- 读取CSV内容,根据不同的图片标签放到指定文件夹
- Android PC投屏简单尝试(录屏直播)2—硬解章(MediaCodec+RMTP)
- linux make编译卡死,为linux内核编译make文件时出现问题?