Codeforces Round #665 (Div. 2)A-C题解
A. Distance and Axis
题目:http://codeforces.com/contest/1401/problem/A
题解:对于n来说分两种情况,一是奇数,二则是偶数
①奇数:对于k来说如果是奇数且小于等于他,ans=0;若k是奇数并且大于n,则ans=k-n;若k是偶数并且k<n,那么ans=1;若k为偶数并且k>n,则ans=k-n
②偶数:若k为偶数并且k<=n,则ans=0;若k为偶数并且k>n,则ans=k-n;若k为奇数并且k<n,则ans=1;若k为奇数并且k>n,则ans=k-n
代码:
#include<bits/stdc++.h> //POJ不支持
#define rep(i,a,n) for (int i=a;i<=n;i++)//i为循环变量,a为初始值,n为界限值,递增
#define per(i,a,n) for (int i=a;i>=n;i--)//i为循环变量, a为初始值,n为界限值,递减。
#define pb push_back
#define IOS ios::sync_with_stdio(false);cin.tie(0); cout.tie(0)
#define fi first
#define se second
#define mp make_pair using namespace std; const int inf = 0x3f3f3f3f;//无穷大
//const int maxn = ;//最大值。
typedef long long ll;
typedef long double ld;
typedef pair<ll, ll> pll;
typedef pair<int, int> pii; int main()
{
IOS;
ll t,n,k;
cin>>t;
while(t--)
{
cin>>n>>k;
if(n%==)
{
if(k%==&&k<=n)
cout<<""<<endl;
else if(k%==&&k>n)
cout<<k-n<<endl;
else if(k%==&&k<n)
cout<<""<<endl;
else if(k%==&&k>n)
cout<<k-n<<endl;
}
else
{
if(k%==&&k<n)
cout<<""<<endl;
else if(k%==&&k>n)
cout<<k-n<<endl;
else if(k%==&&k<=n)
cout<<""<<endl;
else if(k%==&&k>n)
cout<<k-n<<endl;
}
}
return ;
}
B. Ternary Sequence
题目:http://codeforces.com/contest/1401/problem/B
题解:若想最大,只有让尽可能多的a数组中的2去匹对b数组中的1,这样就都是正的。但也会存在负数,如何才能达到最大化呢?一道典型的贪心思路问题
首先判断a中2的个数是否大于b中1的个数
若大于b中1的个数,ans=2*y2,在判断a中0的个数和剩下的2的个数是否大于b数组中2的个数,若大于,答案还是ans;若小于,则b数组中剩下的2的个数将要和a数组中的1的个数进行配对,产生负数,则ans-=2*z2
若小于b中的1的个数,ans=2*z1,然后判断a中0的个数是否大于b中2的个数,若大于,答案就是ans;若小于,则b数组中剩下的2的个数将要和a数组中1的个数进行配对,产生负数,则ans-=2*z2
代码:
#include<bits/stdc++.h> //POJ不支持
#define rep(i,a,n) for (int i=a;i<=n;i++)//i为循环变量,a为初始值,n为界限值,递增
#define per(i,a,n) for (int i=a;i>=n;i--)//i为循环变量, a为初始值,n为界限值,递减。
#define pb push_back
#define IOS ios::sync_with_stdio(false);cin.tie(0); cout.tie(0)
#define fi first
#define se second
#define mp make_pair using namespace std; const int inf = 0x3f3f3f3f;//无穷大
//const int maxn = ;//最大值。
typedef long long ll;
typedef long double ld;
typedef pair<ll, ll> pll;
typedef pair<int, int> pii; int main()
{
IOS;
ll t,x1,x2,y1,y2,z1,z2;
cin>>t;
while(t--)
{
cin>>x1>>y1>>z1;
cin>>x2>>y2>>z2;
ll ans=;
if(z1>=y2)
{
ans+=*y2;
z1-=y2;
if(x1+z1<z2)
{
z2=z2-(x1+z1);
ans-=*z2;
}
}
else
{
ans+=*z1;
if(x1<z2)
{
z2-=x1;
ans-=z2*;
}
}
cout<<ans<<endl;
}
return ;
}
C. Mere Array
题目:http://codeforces.com/contest/1401/problem/C
题解:用两个数组来判断,其一数组来记录数字,另一数组排序形成最终的答案数组。
然后我们理解一下,第i个第j个数交换位置,相当于第i个数先和最小数交换,然后最小数在和第j个数交换。因此,从头到尾对比两个数组,如果数字不一致,判断原来数组是否整除最小数,如果不能整除代表此位置不能交换,因而不会形成最终的不递减数组。
代码:
#include<bits/stdc++.h> //POJ不支持
#define rep(i,a,n) for (int i=a;i<=n;i++)//i为循环变量,a为初始值,n为界限值,递增
#define per(i,a,n) for (int i=a;i>=n;i--)//i为循环变量, a为初始值,n为界限值,递减。
#define pb push_back
#define IOS ios::sync_with_stdio(false);cin.tie(0); cout.tie(0)
#define fi first
#define se second
#define mp make_pair using namespace std; const int inf = 0x3f3f3f3f;//无穷大
const int maxn = ;//最大值。
typedef long long ll;
typedef long double ld;
typedef pair<ll, ll> pll;
typedef pair<int, int> pii; ll gcd(ll a,ll b)
{
return b?gcd(b,a%b):a;
}
ll a[maxn],b[maxn];
int main()
{
IOS;
int t,i,j,n,tmp;
cin>>t;
while(t--)
{
cin>>n;
for(i=;i<n;i++)
{
cin>>a[i];
b[i]=a[i];
}
sort(a,a+n);
bool flag=false;
for(i=;i<n;i++)
{
if(a[i]!=b[i])
{
if(b[i]%a[]!=)
{
flag=true;
break;
}
}
}
if(flag==true)
cout<<"NO"<<endl;
else
cout<<"YES"<<endl;
}
return ;
}
Codeforces Round #665 (Div. 2)A-C题解的更多相关文章
- Codeforces Round #665 (Div. 2) 题解
Codeforces Round #665 (Div. 2) 题解 写得有点晚了,估计都官方题解看完切掉了,没人看我的了qaq. 目录 Codeforces Round #665 (Div. 2) 题 ...
- Codeforces Round #612 (Div. 2) 前四题题解
这场比赛的出题人挺有意思,全部magic成了青色. 还有题目中的图片特别有趣. 晚上没打,开virtual contest打的,就会前三道,我太菜了. 最后看着题解补了第四道. 比赛传送门 A. An ...
- Codeforces Round #665 (Div. 2)
Codeforces Round #665 (Div. 2) A. Distance and Axis 如果\(B\)在\(O\)左边,那么只能是定值\(OA\) 如果\(B\)在\(OA\)中间 ...
- Codeforces Round #198 (Div. 2)A,B题解
Codeforces Round #198 (Div. 2) 昨天看到奋斗群的群赛,好奇的去做了一下, 大概花了3个小时Ak,我大概可以退役了吧 那下面来稍微总结一下 A. The Wall Iahu ...
- Codeforces Round #672 (Div. 2) A - C1题解
[Codeforces Round #672 (Div. 2) A - C1 ] 题目链接# A. Cubes Sorting 思路: " If Wheatley needs more th ...
- Codeforces Round #665 (Div. 2) D. Maximum Distributed Tree 题解(贪心+易错)
题目链接 题目大意 给你一课树,要你给每一条边分权值,每条边的权值大于0,他们的乘积等于k,而且要使得n-1条边1的数量尽可能少,定义 f(u,v)为u到v的边权和求 \(\max \sum_{i=1 ...
- Codeforces Round #614 (Div. 2) A-E简要题解
链接:https://codeforces.com/contest/1293 A. ConneR and the A.R.C. Markland-N 题意:略 思路:上下枚举1000次扫一遍,比较一下 ...
- Codeforces Round #610 (Div. 2) A-E简要题解
contest链接: https://codeforces.com/contest/1282 A. Temporarily unavailable 题意: 给一个区间L,R通有网络,有个点x,在x+r ...
- Codeforces Round #611 (Div. 3) A-F简要题解
contest链接:https://codeforces.com/contest/1283 A. Minutes Before the New Year 题意:给一个当前时间,输出离第二天差多少分钟 ...
随机推荐
- 如何用redis做缓存
redis缓存 在互联网应用中经常需要用redis来缓存热点数据. redis数据在内存,可以保证数据读取的高效,接近每秒数十万次的吞吐量 减少下层持久层数据库读取压力,像mongodb,每秒近千次读 ...
- 给自己挖坑——DateWay
参考文章 官方手册 官方博客 填坑 目录 简介 使用 1. 引入相关依赖 2. 配置 Dataway,并初始化数据表 3. 配置数据源 4. 把数据源设置到 Hasor 容器中 5. 在SprintB ...
- 关于if后有无else谜题
在自定义函数中 for(i=1;i<=6;i++) { if(a%i==0) return 0; else return 1; } 意思是,如果有一个除不尽就返回零,有一个除尽会立刻返回一. 如 ...
- 实现了__iter__和__next__的对象是迭代器
class MyList(object): """自定义的一个可迭代对象""" def __init__(self): self.items ...
- PHP curl_multi_remove_handle函数
(PHP 5) curl_multi_remove_handle — 移除curl批处理句柄资源中的某个句柄资源 说明 int curl_multi_remove_handle ( resource ...
- TCP为什么做三次握手、四次挥手
TCP 为什么做三次握手.四次挥手? TCP 是为了解决可靠传输出现的.为了实现可靠性,TCP 做了流量控制.拥塞控制,并且在建立.关闭连接前做些机制:三次握手.四次挥手. 三次握手是为了让客户端.服 ...
- python2.2 elif多条件判断
#案例:存款大于100万,买宝马:大于50万买丰田:大于20万买二手车:小于20万自行车! cunkuan=60#elif多条件判断,else:不满足elif执行其他命令if cunkuan>1 ...
- Azure DevOps+Docker+Asp.NET Core 实现CI/CD(二.创建CI持续集成管道)
前言 本文主要是讲解如何使用Azure DevOps+Docker 来实现持续集成Asp.NET Core项目(当然 也可以是任意项目). 上一篇: Azure DevOps+Docker+Asp.N ...
- C++/C socket编程实例
目录 基于TCP的socket编程 服务器代码 客户端代码 运行结果 基于UDP的socket编程 服务器代码 客户端代码 运行结果 基于TCP的socket编程 服务器代码 服务器端代码如下 //T ...
- C#LeetCode刷题之#447-回旋镖的数量(Number of Boomerangs)
问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/3792 访问. 给定平面上 n 对不同的点,"回旋镖&q ...