Atcoder ABC 141
Atcoder ABC 141
A - Weather Prediction
SB题啊,不讲。
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
char ch[50];
int main() {
scanf("%s",ch+1);
if(ch[1] == 'S') puts("Cloudy");
if(ch[1] == 'C') puts("Rainy");
if(ch[1] == 'R') puts("Sunny");
//system("pause");
return 0;
}
B - Tap Dance
暴力判断每一位是否合法就行。
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
using namespace std;
#define LL long long
#define N 100010
char ch[N];
bool flag = 1;
int main() {
scanf("%s",ch+1);
int len = strlen(ch + 1);
for(int i = 1 ; i <= len ; i++) {
if(i % 2 == 1) {
if(ch[i] == 'R' || ch[i] == 'U' || ch[i] == 'D') continue;
else {
flag = 0;
break;
}
}
if(i % 2 == 0) {
if(ch[i] == 'L' || ch[i] == 'U' || ch[i] == 'D') continue;
else {
flag = 0;
break;
}
}
}
if(flag) puts("Yes");
else puts("No");
//system("pause");
return 0;
}
C - Attack Survival
直接暴力会T的飞起,所以需要优化。
因为每一轮除了回答问题的人,其他人的值全部 $ -1 $ 。
所以我们可以考虑先全部 $ -1 $ ,再对回答问题的人 $ +1 $ 即可。
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
using namespace std;
#define LL long long
const int N = 1e5 + 100;
int a[N],n,k,q,x;
int main() {
scanf("%d%d%d",&n,&k,&q);
for(int i = 1 ; i <= n ; i++) a[i] = k - q;
/*while(q--) {
scanf("%d",&x);
for(int i = 1 ; i <= n ; i++) a[i]--;
a[x]++;
}*/
while(q--) {
scanf("%d",&x);
a[x]++;
}
for(int i = 1 ; i <= n ; i++) {
if(a[i] > 0) puts("Yes");
else if(a[i] <= 0) puts("No");
}
//system("pause");
return 0;
}
D - Powerful Discount Tickets
贪心,拿个堆维护一下。
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<queue>
using namespace std;
#define LL long long
const int N = 1e5 + 100;
LL num[N],dis,m,n;
priority_queue<LL> qu;
inline int fast_pow(int x, int y) {
int ans = 1;
while(y) {
if(y & 1) ans = x * ans;
y >>= 1;
x = x * x;
}
return ans;
}
int main() {
scanf("%lld%lld",&n,&m);
for (int i = 1; i <= n; i++) {
scanf("%lld",&num[i]);
qu.push(num[i]);
}
if (n == 1) {
if(log2(num[1]) + 1 <= m) puts("0");
else printf("%lld\n", num[1] / fast_pow (2, m));
return 0;
}
while(m) {
int now = qu.top();
if(now == 0) break;
qu.pop();
int cost = 0;
if(qu.top() == 0) {
if(log2 (now) + 1 <= m) qu.push(0);
else qu.push(now/fast_pow(2, m));
break;
}
while(now/fast_pow(2, cost) - now/fast_pow(2, cost + 1) >= qu.top() - qu.top()/2 && cost + 1 <= m) cost++;
m -= cost;
qu.push(now/fast_pow(2, cost));
}
while(!qu.empty()) {
dis += qu.top();
qu.pop();
}
printf("%lld\n", dis);
//system("pause");
return 0;
}
E - Who Says a Pun?
直接SA,没了。
Atcoder ABC 141的更多相关文章
- AtCoder abc 141 F - Xor Sum 3(线性基)
传送门 题意: 给出\(n\)个数\(a_i\),现在要将其分为两堆,使得这两堆数的异或和相加最大. 思路: 考虑线性基贪心求解. 但直接上线性基求出一组的答案是行不通的,原因之后会说. 注意到如果二 ...
- ATCODER ABC 099
ATCODER ABC 099 记录一下自己第一场AK的比赛吧...虽然还是被各种踩... 只能说ABC确实是比较容易. A 题目大意 给你一个数(1~1999),让你判断它是不是大于999. Sol ...
- Atcoder ABC 139E
Atcoder ABC 139E 题意: n支球队大循环赛,每支队伍一天只能打一场,求最少几天能打完. 解法: 考虑抽象图论模型,既然一天只能打一场,那么就把每一支球队和它需要交手的球队连边. 求出拓 ...
- Atcoder ABC 139D
Atcoder ABC 139D 解法: 等差数列求和公式,记得开 $ long long $ CODE: #include<iostream> #include<cstdio> ...
- Atcoder ABC 139C
Atcoder ABC 139C 题意: 有 $ n $ 个正方形,选择一个起始位置,使得从这个位置向右的小于等于这个正方形的高度的数量最多. 解法: 简单递推. CODE: #include< ...
- Atcoder ABC 139B
Atcoder ABC 139B 题意: 一开始有1个插口,你的插排有 $ a $ 个插口,你需要 $ b $ 个插口,问你最少需要多少个插排. 解法: 暴力模拟. CODE: #include< ...
- Atcoder ABC 139A
Atcoder ABC 139A 题意: 给你两个字符串,记录对应位置字符相同的个数 $ (n=3) $ 解法: 暴力枚举. CODE: #include<iostream> #inclu ...
- atcoder abc 244
atcoder abc 244 D - swap hats 给定两个 R,G,B 的排列 进行刚好 \(10^{18}\) 次操作,每一次选择两个交换 问最后能否相同 刚好 \(10^{18}\) 次 ...
- AtCoder ABC 250 总结
AtCoder ABC 250 总结 总体 连续若干次一样的结果:30min 切前 4 题,剩下卡在 T5 这几次卡在 T5 都是一次比一次接近, 什么 dp 前缀和打挂,精度被卡,能水过的题连水法都 ...
随机推荐
- 《图解HTTP》摘录
# 图解HTTP 第 1 章 了解Web及网络基础 1.1使用http协议访问web 客户端:通过发送请求获取服务器资源的Web浏览器等. Web使用一种名为 HTTP(HyperText Trans ...
- vue 后台管理系统菜单权限管理
来自:https://www.cnblogs.com/fqh123/p/11094296.html 侵删 login登录方法 login() { if (!this.username) { retur ...
- DbTemplate
package com.me.dbComponent; import java.sql.Connection; import java.sql.PreparedStatement; import ja ...
- sed 追加文件内容
追加用法总结 1.a 在匹配行后面追加 2.i 在匹配行前面追加 3.r 将文件内容追加到匹配行后面 4.w 将匹配行写入指定文件 在匹配行后面追加 a passwd文件第10行后面追加"A ...
- 前端框架开始学习Vue(一)
MVVM开发思想图(图片可能会被缩小,请右键另存查看,图片来源于网络) 定义基本Vue代码结构 1 v-text,v-cloak,v-html命令 默认 v-text没有闪烁问题,但是会覆盖元 ...
- javascript_02-变量
变量 var number = 5; number = 5; //与上面一样的效果,语法没错误,但是不规范 var:关键字,变量的意思. 变量可以立即赋值,也可以稍后赋值. 堆和栈 内存中有两个区域, ...
- 再见 Docker,是时候拥抱下一代容器工具了
本文首发于:微信公众号「运维之美」,公众号 ID:Hi-Linux. 「运维之美」是一个有情怀.有态度,专注于 Linux 运维相关技术文章分享的公众号.公众号致力于为广大运维工作者分享各类技术文章和 ...
- Linux VPS搭建蚂蚁笔记Leanote私有云笔记存储平台
一.基础环境LNMP 安装nginx: yum install epel-release -y yum install nginx -y # 启动 nginx systemctl start ngin ...
- Ajax 的简介与使用
一.什么是Ajax Ajax 的全称是 Asynchronous JavaScript and XML(即异步的 JavaScript 和 XML),是一种在无需重新加载整个网页的情况下,能够更新部分 ...
- Castle Windsor Ioc 一个接口多个实现解决方案
介绍 Castle Windsor 是微软的Ioc类库,本文主要介绍解决一个接口多个实现的解决方案 接口和类 以下内容不是真实的实际场景,仅仅是提供解决一个接口多个实现的思路. 业务场景类 先假设有一 ...