abc136
第一次打ABC
题目简单,但我菜
可以任选两个数,一个减去1,一个加上1,可以操作$0,\cdots,K$次,求操作后数组最大GCD
枚举数组之和的因子,试图找到符合题意的最大因子
check(x)
对x取模,然后排下序,前面的减到0后面的加到x,枚举分界点,看能不能找到减去的与加上的相等的位置
维护一个前缀和,即满足$sum[i]==(n-i)\times x-sum[n]+sum[i]$的位置
#include<bits/stdc++.h>
typedef long long ll;
#define pair<int,int> P
#define sc(N) scanf("%lld",&N);
using namespace std;
ll A[];
ll B[]; ll K;ll N;
bool check(ll x)
{
ll t=;
for(int i=;i<=N;i++){
B[i]=(A[i-])%x;
}
sort(B+,B+N+);
for(int i=;i<=N;i++){
B[i]+=B[i-];
}
for(int i=;i<=N;i++){
if(B[i]==x*(N-i)-B[N]+B[i]){
if(B[i]<=K)return true;
}
if(B[i]>K)return false;
}
return false;
}
int main()
{ sc(N);
sc(K);
ll t=;
for(int i=; i<N; i++)
{
sc(A[i]);
t+=A[i];
}
sort(A,A+N);
ll ans=;
ll x;
for(ll i=; i*i<=t; i++)
{
if(t%i==)
{
x=t/i;
if(check(x))
{
ans=x;
break;
}
else if(check(i))
{
ans=i;
} }
}
cout<<ans<<'\n';
}
给一个一堆’L‘,'R'的字符串s,每个位置站一个小人,按着脚下’L‘,’R‘的方向来走,求10^100步后,每个位置有多少小人
#include<bits/stdc++.h>
typedef long long ll;
#define pair<int,int> P
#define sc(N) scanf("%lld",&N);
using namespace std;
int N;
string s;
int A[]; int main()
{
cin>>s;
int n=s.length();
int j=;
for(int i=; i<n;)
{
// cout<<i<<endl;
if(s[i]=='R')
{
while(s[i+j]=='R')
{
j++;
} int k=i+j;i=i+j;
while(j>)
{
if(j&)A[k-]++;
else A[k]++;
j--;
} }
else
i++; } for(int i=n-; i>=;)
{
//cout<<i<<endl;
j=;
if(s[i]=='L')
{
while(s[i-j]=='L')
{
j++;
}
//i=i-j;
int k=i-j;i=i-j;
while(j>)
{
if(j&)A[k+]++;
else A[k]++;
j--;
} }
else
i--; }
for(int i=;i<n;i++){
cout<<A[i]<<' ';
}
cout<<'\n'; }
abc136的更多相关文章
- 【atcoder】Enclosed Points [abc136F]
题目传送门:https://atcoder.jp/contests/abc136/tasks/abc136_f 题目大意:在平面上有$n$个点我们,定义一个点集的权值为平面上包含这个点集的最小矩形所包 ...
- ABC136E Max GCD
Thinking about different ways of thinking. --- LzyRapx 题目 思路比较容易想到. Observations: 每次操作过后和不变. 枚举和的因子 ...
随机推荐
- EF Core 初始化数据库的两种方法。
使用DbContextSeed初始化数据库 添加链接字符串 // This method gets called by the runtime. Use this method to add serv ...
- 简述Vue的实例属性、实例方法
1.实例属性 组件树访问 $parent -----> 用来访问当前组件实例的父实例: $root -----> 用来访问当前组件树的根实例,如果当前组件没有父实例,则$root表示当前组 ...
- [Git] 014 远程仓库篇 第一话
0. 前言 在 [Git] 001 初识 Git 与 GitHub 之新建仓库 中,我在 GitHub 上建了一个仓库 "interesting" 这回的任务 把远程的 " ...
- vue视图不更新情况详解
vue视图不更新情况详解:https://www.jb51.net/article/161371.htm
- oracle跟SQL Server 2005 的区别
Oracle与Sql server的区别 一直搞不明白Oracle数据库和sql server的区别,今天我特意查资料把他们的区别整理出来 Oracle数据库:Oracle Database,又名 ...
- Linux/Unix下pid文件作用浅析
转载:http://blog.csdn.net/changli_90/article/details/8911191 在Linux系统的目录/var/run下面一般我们都会看到很多的*.pid文件.而 ...
- 【源码解读】cycleGAN(二) :训练
源码地址:https://github.com/aitorzip/PyTorch-CycleGAN 训练的代码见于train.py,首先定义好网络,两个生成器A2B, B2A和两个判别器A, B,以及 ...
- tar.xz问价解压
1. 解压tar.xz安装包 今天去Ubuntu上安装nodejs,下载的文件是node-v8.11.1-linux-x64.tar.xz,这是两层压缩,外面是xz压缩,里层是tar压缩,所以分两步实 ...
- 深入理解hadoop值MapReduce(2)
1.MapReduce编程模型概述 MapReduce编程模型给出了分布式的编程方法,总共分为5个步骤.分为这5个步骤的优点:组件化和并行化 (1)迭代.遍历输入数据,并将其解析成key/value键 ...
- maven多模块tomcat启动报 NoClassDefFoundError:com/test/main/message
maven多模块tomcat启动报 NoClassDefFoundError:com/test/main/message 扫描不到 添加子模块jar包