Codeforces Edu Round 72 (Rated for Div. 2)
时间:2019-09-06
本文章向大家介绍Codeforces Edu Round 72 (Rated for Div. 2),主要包括Codeforces Edu Round 72 (Rated for Div. 2)使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
有点难。
题目连接:https://codeforces.com/contest/1217
A:
想清楚就是一道口算题。
1 /* basic header */ 2 #include <bits/stdc++.h> 3 /* define */ 4 #define ll long long 5 #define dou double 6 #define pb emplace_back 7 #define mp make_pair 8 #define sot(a,b) sort(a+1,a+1+b) 9 #define rep1(i,a,b) for(int i=a;i<=b;++i) 10 #define rep0(i,a,b) for(int i=a;i<b;++i) 11 #define eps 1e-8 12 #define int_inf 0x3f3f3f3f 13 #define ll_inf 0x7f7f7f7f7f7f7f7f 14 #define lson (curpos<<1) 15 #define rson (curpos<<1|1) 16 /* namespace */ 17 using namespace std; 18 /* header end */ 19 20 int t; 21 22 int main() { 23 scanf("%d", &t); 24 while (t--) { 25 int a, b, c; scanf("%d%d%d", &a, &b, &c); 26 if (!c) { 27 a > b ? puts("1") : puts("0"); 28 continue; 29 } 30 printf("%d\n", min(c + 1, max((a + c - b + 1) / 2, 0))); 31 } 32 return 0; 33 }
B:
贪心。按砍完一刀之后改变头的数量来排序。
1 /* basic header */ 2 #include <bits/stdc++.h> 3 /* define */ 4 #define ll long long 5 #define dou double 6 #define pb emplace_back 7 #define mp make_pair 8 #define sot(a,b) sort(a+1,a+1+b) 9 #define rep1(i,a,b) for(int i=a;i<=b;++i) 10 #define rep0(i,a,b) for(int i=a;i<b;++i) 11 #define eps 1e-8 12 #define int_inf 0x3f3f3f3f 13 #define ll_inf 0x7f7f7f7f7f7f7f7f 14 #define lson (curpos<<1) 15 #define rson (curpos<<1|1) 16 /* namespace */ 17 using namespace std; 18 /* header end */ 19 20 const int maxn = 200; 21 pair<int, int>cut[maxn]; 22 23 int main() { 24 int t; scanf("%d", &t); 25 while (t--) { 26 int n, head, maxx = 0; 27 scanf("%d%d", &n, &head); 28 rep1(i, 1, n) { 29 int a, b; scanf("%d%d", &a, &b); 30 maxx = max(a, maxx); 31 cut[i].first = a - b, cut[i].second = a; 32 } 33 head -= maxx; 34 sort(cut + 1, cut + 1 + n, greater<pair<int, int>>()); 35 if (head <= 0) { 36 puts("1"); 37 continue; 38 } 39 if (cut[1].first <= 0) { 40 puts("-1"); 41 continue; 42 } 43 int ans = head / cut[1].first + 1; 44 if (head % cut[1].first) ans++; 45 printf("%d\n", ans); 46 } 47 return 0; 48 }
C:
巧妙的想法没有,看到时限4s就是O(n^2)暴力开搞。要先预处理出所有连续0的位置。
1 /* basic header */ 2 #include <bits/stdc++.h> 3 /* define */ 4 #define ll long long 5 #define dou double 6 #define pb emplace_back 7 #define mp make_pair 8 #define sot(a,b) sort(a+1,a+1+b) 9 #define rep1(i,a,b) for(int i=a;i<=b;++i) 10 #define rep0(i,a,b) for(int i=a;i<b;++i) 11 #define epre 1e-8 12 #define int_inf 0x3f3f3f3f 13 #define ll_inf 0x7f7f7f7f7f7f7f7f 14 #define lson (curpos<<1) 15 #define rson (curpos<<1|1) 16 /* namespace */ 17 using namespace std; 18 /* header end */ 19 20 const int maxn = 2e5 + 10; 21 int t, pre[maxn]; 22 char s[maxn]; 23 24 int main() { 25 scanf("%d", &t); 26 while (t--) { 27 scanf("%s", s + 1); 28 int n = strlen(s + 1); 29 ll ans = 0; 30 rep1(i, 1, n) { 31 if (s[i] == '1') pre[i] = -1; 32 else pre[i] = s[i - 1] == '0' ? pre[i - 1] : i; 33 } 34 rep1(r, 1, n) { 35 ll curr = 0; 36 for (int l = r; l >= 1; l--) 37 if (s[l] == '1') { 38 if (r - l >= 20) break; 39 curr += (1 << (r - l)); 40 if (r - l + 1 == curr) ans++; 41 } else { 42 if (r + 1 - curr >= pre[l] && r + 1 - curr <= l) ans++; 43 l = pre[l]; 44 } 45 } 46 printf("%lld\n", ans); 47 } 48 return 0; 49 }
原文地址:https://www.cnblogs.com/JHSeng/p/11474948.html
- Silverlight:利用异步加载Xap实现自定义loading效果
- Docker容器学习梳理--手动制作系统镜像
- 怎样裁剪图片的局部
- vb中实现最佳按钮效果
- silverlight:wcf双工通讯学习笔记
- Docker容器学习梳理--web管理工具DockerUI部署记录
- Docker容器学习梳理-容器硬盘热扩容
- 检测到Loaderlock的问题
- 权威报告预测比特币在2018年“王位”不保
- Linux下FTP环境部署梳理(vsftpd和proftpd)
- Silverlight如何与JS相互调用
- Docker容器学习梳理--私有仓库Registry使用
- 从插件重构看如何提升测试质量与效率
- 巧用WinRAR+Javascript解决activeX的自动安装问题
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 智能合约中常见的漏洞总结复现#技术创作101训练营#
- JS根据列表排列对象数组
- git提取两次提交或者版本的差异文件并打包成zip压缩包
- 博客通用版Live2d伊斯特瓦尔发布
- 一个小需求,自动重启k8s集群中日志不刷新的POD
- 多图,一文了解 8 种常见的数据结构
- Jenkins--pipline 流水线部署Java后端项目
- 微信小程序修炼之路LV1—工具介绍篇
- CentOS 7 部署OpenLDAP+FreeRadius
- 手把手教你使用yolo进行对象检测
- K8s之Helm工具详解
- 技术创作101训练营——上古神器Gvim--从入门到精通
- 关于linux7下编写crontab任务执行mysqldump备份无效
- 黑暗中的YOLO:解决黑夜里的目标检测 | ECCV 2020
- Elasticsearch:Java 运用示例