比赛链接: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的更多相关文章

  1. AtCoder Beginner Contest 100 2018/06/16

    A - Happy Birthday! Time limit : 2sec / Memory limit : 1000MB Score: 100 points Problem Statement E8 ...

  2. AtCoder Beginner Contest 052

    没看到Beginner,然后就做啊做,发现A,B太简单了...然后想想做完算了..没想到C卡了一下,然后还是做出来了.D的话瞎想了一下,然后感觉也没问题.假装all kill.2333 AtCoder ...

  3. AtCoder Beginner Contest 053 ABCD题

    A - ABC/ARC Time limit : 2sec / Memory limit : 256MB Score : 100 points Problem Statement Smeke has ...

  4. AtCoder Beginner Contest 136

    AtCoder Beginner Contest 136 题目链接 A - +-x 直接取\(max\)即可. Code #include <bits/stdc++.h> using na ...

  5. AtCoder Beginner Contest 137 F

    AtCoder Beginner Contest 137 F 数论鬼题(虽然不算特别数论) 希望你在浏览这篇题解前已经知道了费马小定理 利用用费马小定理构造函数\(g(x)=(x-i)^{P-1}\) ...

  6. AtCoder Beginner Contest 076

    A - Rating Goal Time limit : 2sec / Memory limit : 256MB Score : 100 points Problem Statement Takaha ...

  7. AtCoder Beginner Contest 079 D - Wall【Warshall Floyd algorithm】

    AtCoder Beginner Contest 079 D - Wall Warshall Floyd 最短路....先枚举 k #include<iostream> #include& ...

  8. AtCoder Beginner Contest 064 D - Insertion

    AtCoder Beginner Contest 064 D - Insertion Problem Statement You are given a string S of length N co ...

  9. AtCoder Beginner Contest 075 D - Axis-Parallel Rectangle【暴力】

    AtCoder Beginner Contest 075 D - Axis-Parallel Rectangle 我要崩溃,当时还以为是需要什么离散化的,原来是暴力,特么五层循环....我自己写怎么都 ...

随机推荐

  1. element el-table表格的vue组件二次封装(附表格高度自适应)

    基于vue的el-table表格二次封装组件方法 前言 在公司实习使用vue+element-ui框架进行前端开发,使用表格el-table较为多,有些业务逻辑比较相似,有些地方使用的重复性高,如果多 ...

  2. Mybatis 一级缓存和二级缓存的使用

    目录 Mybatis缓存 一级缓存 二级缓存 缓存原理 Mybatis缓存 官方文档:https://mybatis.org/mybatis-3/zh/sqlmap-xml.html#cache My ...

  3. service自动发现,yaml文件管理内外部端口访问

    service服务发现 [root@k8s-master ~]# vim busybox-5d4f595646-dzjv4.yaml apiVersion: v1 kind: Pod metadata ...

  4. 误删除SAP ECC中的profile文件

    环境:ECC6.0 EHP4  FOR ORACLE ON WINDWS X64下 今天在RZ10配置系统参数文件的时候,不小心错删除了instance profile文件,这下惨了,这是操作系统层级 ...

  5. USB限流IC,输入5V,输出5V,最大3A限流

    USB限流芯片,5V输入,输出5V电压,限流值可以通过外围电阻进行调节,PWCHIP产品中可在限流范围0.4A-4.8A,并具有过压关闭保护功能. 过压关闭保护: 如芯片:PW1555,USB我们一半 ...

  6. 两节锂电池保护IC,芯片电路图如何设计

    两节锂电池出了充电电路外,必须搭配的也就是两节锂电池的保护板电路和芯片了.对两节节串联可再充电锂离子/锂聚合物电池的过充电.过放电和过电流进行保护.和电池反接保护功能,这些都是极其重要的. 首先设计两 ...

  7. numpy模块(详解)

    重点 索引和切片 级联 聚合操作 统计操作 矩阵 什么是数据分析 是把隐藏在一些看似杂乱无章的数据背后的信息提炼出来,总结出所研究对象的内在规律 数据分析是用适当的方法对收集来的大量数据进行分析,帮助 ...

  8. 常用的hadoop和yarn的端口总结

    节点 默认端口 用途说明 HDFS DataNode 50010 datanode服务端口,用于数据传输 50075 http服务的端口 50475 https服务的端口 50020 ipc服务的端口 ...

  9. JMeter联机负载及问题解决

    主控制机:存放JMeter脚本的机器叫做主控制机 负载机:被连接并用来运行脚本的机器叫做负载机 操作步骤: 1.修改主控制机上,JMeter安装目录bin目录下的JMeter.properties文件 ...

  10. 从输入URL到页面展示,这中间都发生了什么?

    前言 在浏览器里,从用户输入URL到页面展示,这中间都发生了什么?这是一道非常经典的面试题.这里边涉及很多知识点,比如:网络协议.页面渲染.操作系统等.所以这是很好很全面的考察一个前端的知识.下面我将 ...