比赛链接: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. ICMP协议概述

    • ICMP是三层协议,和IP.ARP.ICMP同属三层    • IP协议中的6是代表上层的TCP协议,17代表UDP协议,1代表同层的ICMP协议    • ICMP协议主要用来探测       ...

  2. P3714 [BJOI2017]树的难题 点分治+线段树合并

    题目描述 题目传送门 分析 路径问题考虑点分治 对于一个分治中心,我们可以很容易地得到从它开始的一条路径的价值和长度 问题就是如何将不同的路径合并 很显然,对于同一个子树中的所有路径,它们起始的颜色是 ...

  3. 了解一下IO控制器与控制方式

    IO控制器 CPU无法直接控制IO设备的机械部件,因此IO设备还要有个电子部件作为CPU和IO设备机械部件之间的"中介",用于实现CPU对设备的控制. 这个电子部件就是IO控制器, ...

  4. 【Oracle】重命名表空间

    将表空间重新命名 SQL>   alter tablespace 原名 rename to 新名; 在查看下是否命名成功 SQL> select tablespace_name from ...

  5. SDUST数据结构 - chap4 串

    函数题: 6-1 查找子串: 裁判测试程序样例: #include <stdio.h> #define MAXS 30 char *search(char *s, char *t); vo ...

  6. postgresql数据库升级

    pg_upgrade官网介绍:https://www.postgresql.org/docs/10/pgupgrade.html 1.查看老版本数据库编译参数值并记录 select name,sett ...

  7. 如何实现微信小程序动画?添加到我的小程序动画实现详细讲解,轻松学会动画开发!附壁纸小程序源码下载链接

    为了让用户能尽可能多地使用小程序,也算是沉淀用户,现在很多小程序中,都有引导用户"添加到我的小程序"的操作提示,而且大多都是有动画效果.在高清壁纸推荐小程序首页,用户每次进入,都会 ...

  8. SAP里会话结束方法(杀死进程)

    在SAP的ERP里,有很多方法可以结束一个会话,然而在不同情况下,需要使用的方法也不同.下面从先后顺序来简单说明:1.SM04:最常用的方法,在SM04点击工具栏的会话->结束会话,来关闭一个会 ...

  9. 迈凯伦765LT/600LT/720S/650S/570S维修手册电路图Mclaren车间手册接线图

    全套迈凯伦维修手册电路图Mclaren车间手册线路图:语言:English,German,French,Spanish,Chinese,Japanese.McLaren迈凯伦新GT维修手册电路图零配件 ...

  10. uni-app开发经验分享八: 实现微信APP支付的全过程详解

    背景 最近项目使用uni-app实现微信支付,把过程简单记录下,帮助那些刚刚基础uni-app,苦于文档的同学们.整体来说实现过程和非uni-app的实现方式没有太大不同,难点就在于uni-app对于 ...