AtCoder Beginner Contest 161
比赛链接:https://atcoder.jp/contests/abc161/tasks
AtCoder Beginner Contest 161
第一次打AtCoder的比赛,因为是日本的网站终于不用倒时差了233。
A - ABC Swap
可以直接按照交换后的顺序输出。
#include <bits/stdc++.h>
using namespace std;
int main()
{
int a,b,c;
cin>>a>>b>>c;
cout<<c<<' '<<a<<' '<<b;
return 0;
}
B - Popular Vote
最后一个测试点会卡取下整的误差,可以通过变换不等式来避免。
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n,m;cin>>n>>m;
int a[n];for(int &i:a) cin>>i;
int sum=accumulate(a,a+n,0);
int cnt=0;
for(int i:a)
if(4*m*i>=sum) ++cnt;
cout<<(cnt>=m?"Yes":"No")<<"\n";
return 0;
}
C - Replacing Integer
$N$ 通过不断地减 $K$ 最后一定会在 $[0,K)$ 之内,此时输出 $min(N,K-N)$ 即可。
#include <bits/stdc++.h>
using namespace std;
int main()
{
long long n,k;cin>>n>>k;
cout<<min(n%k,k-n%k);
return 0;
}
D - Lunlun Number
对每个数的最后一位从小到大进行扩展,操作 $k$ 次即可。
#include <bits/stdc++.h>
using namespace std;
int main()
{
long long k;cin>>k; queue<long long> q;
for(long long i=1;i<=9;i++)
q.push(i); long long ans;
while(k--){
ans=q.front();
q.pop(); long long m=ans%10; if(m>0) q.push(ans*10+m-1);
q.push(ans*10+m);
if(m<9) q.push(ans*10+m+1);
}
cout<<ans; return 0;
}
E - Yutori
思路参考自:Harris-H
正反向模拟一遍分别存储第 $i$ 次工作的最早和最晚天数,若二者相等说明该天必须工作。
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n,k,c;cin>>n>>k>>c;
string s;cin>>s; int a[k]={},b[k]={}; for(int i=0,j=0;i<n&&j<k;i++)
if(s[i]=='o')
a[j++]=i,i+=c; for(int i=n-1,j=k-1;i>=0&&j>=0;i--)
if(s[i]=='o')
b[j--]=i,i-=c; for(int i=0;i<k;i++)
if(a[i]==b[i])
cout<<a[i]+1<<"\n"; return 0;
}
F - Division or Substraction
若 $N$ 最终可以变为 $1$,$K$ 需要满足:$\frac{N}{K^n}$${\%K=1}$。
- 当 $n=0$ 时,$N\%K=1$,此时的 $K$ 为 $N-1$ 的因子。
- 当 $n>0$ 时,只有枚举不大于 $\sqrt{N}$ 的因子K,才有可能得到 $\frac{N}{K^n}$${\%K=1}$。
最后再讨论一下 $K=1$ 和 $K=N$ 的情况即可。
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int main()
{
ll n;cin>>n; set<ll> st;
for(ll i=2;i*i<=n;i++){
if(n%i==0){
ll t=n;
while(t%i==0) t/=i;
if(t%i==1) st.insert(i);
}
}
for(ll i=1;i*i<=n-1;i++){
if((n-1)%i==0){
st.insert(i);
st.insert((n-1)/i);
}
}
st.erase(1);
st.insert(n); cout<<st.size()<<"\n"; return 0;
}
AtCoder Beginner Contest 161的更多相关文章
- AtCoder Beginner Contest 100 2018/06/16
A - Happy Birthday! Time limit : 2sec / Memory limit : 1000MB Score: 100 points Problem Statement E8 ...
- AtCoder Beginner Contest 052
没看到Beginner,然后就做啊做,发现A,B太简单了...然后想想做完算了..没想到C卡了一下,然后还是做出来了.D的话瞎想了一下,然后感觉也没问题.假装all kill.2333 AtCoder ...
- AtCoder Beginner Contest 053 ABCD题
A - ABC/ARC Time limit : 2sec / Memory limit : 256MB Score : 100 points Problem Statement Smeke has ...
- AtCoder Beginner Contest 136
AtCoder Beginner Contest 136 题目链接 A - +-x 直接取\(max\)即可. Code #include <bits/stdc++.h> using na ...
- AtCoder Beginner Contest 137 F
AtCoder Beginner Contest 137 F 数论鬼题(虽然不算特别数论) 希望你在浏览这篇题解前已经知道了费马小定理 利用用费马小定理构造函数\(g(x)=(x-i)^{P-1}\) ...
- AtCoder Beginner Contest 076
A - Rating Goal Time limit : 2sec / Memory limit : 256MB Score : 100 points Problem Statement Takaha ...
- AtCoder Beginner Contest 079 D - Wall【Warshall Floyd algorithm】
AtCoder Beginner Contest 079 D - Wall Warshall Floyd 最短路....先枚举 k #include<iostream> #include& ...
- AtCoder Beginner Contest 064 D - Insertion
AtCoder Beginner Contest 064 D - Insertion Problem Statement You are given a string S of length N co ...
- AtCoder Beginner Contest 075 D - Axis-Parallel Rectangle【暴力】
AtCoder Beginner Contest 075 D - Axis-Parallel Rectangle 我要崩溃,当时还以为是需要什么离散化的,原来是暴力,特么五层循环....我自己写怎么都 ...
随机推荐
- 计算机考研复试真题 a+b(大数加法)
题目描述 实现一个加法器,使其能够输出a+b的值. 输入描述: 输入包括两个数a和b,其中a和b的位数不超过1000位. 输出描述: 可能有多组测试数据,对于每组数据, 输出a+b的值. 示例1 输入 ...
- unixbench性能测试跑分工具
UnixBench是一个类unix系(Unix,BSD,Linux)统下的性能测试工具,一个开源工具,被广泛用与测试linux系统主机的性能 所谓跑分工具,不仅各项的测试有得分,最后跑完也会有一个综合 ...
- kubernetes机理之调度器以及控制器
一 了解调度器 1.1 调度器是如何将一个pod调度到节点上的 我们都已然知晓了,API服务器不会主动的去创建pod,只是拉起系统组件,这些组件订阅资源状态的通知,之后创建相应的资源,而负责调度po ...
- leetcode 1593. 拆分字符串使唯一子字符串的数目最大(DFS,剪枝)
题目链接 leetcode 1593. 拆分字符串使唯一子字符串的数目最大 题意: 给你一个字符串 s ,请你拆分该字符串,并返回拆分后唯一子字符串的最大数目. 字符串 s 拆分后可以得到若干 非空子 ...
- Flink源码剖析:Jar包任务提交流程
Flink基于用户程序生成JobGraph,提交到集群进行分布式部署运行.本篇从源码角度讲解一下Flink Jar包是如何被提交到集群的.(本文源码基于Flink 1.11.3) 1 Flink ru ...
- 2V升5V的升压芯片,两款芯片电路图
2V的输入电压,是可以用来做5V输出的升压电路,但是2V的供电设备很少,不知道还有什么东西是2V电压的,还需要升压到5V的电路系统. 两款2V升5V的芯片电路图: 第1, PW5100升压芯片,输出电 ...
- 中间件:ElasticSearch组件RestHighLevelClient用法详解
本文源码:GitHub·点这里 || GitEE·点这里 一.基础API简介 1.RestHighLevelClient RestHighLevelClient的API作为ElasticSearch备 ...
- 从软件(Java/hotspot/Linux)到硬件(硬件架构)分析互斥操作的本质
先上结论: 一切互斥操作的依赖是 自旋锁(spin_lock),互斥量(semaphore)等其他需要队列的实现均需要自选锁保证临界区互斥访问. 而自旋锁需要xcmpchg等类似的可提供CAS操作的硬 ...
- 转 15 jmeter分布式性能测试
15 jmeter分布式性能测试 背景由于jmeter本身的瓶颈,当需要模拟数以千计的并发用户时,使用单台机器模拟所有的并发用户就有些力不从心,甚至还会引起Java内存溢出的错误.要解决这个问题, ...
- 前端面试之JavaScript中的闭包!
前端面试之JavaScript中的闭包! 闭包 闭包( closure )指有权访问另一个函数作用域中变量的函数. ----- JavaScript 高级程序设计 闭包其实可以理解为是一个函数 简单理 ...