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题解的更多相关文章

  1. Codeforces Round #665 (Div. 2) 题解

    Codeforces Round #665 (Div. 2) 题解 写得有点晚了,估计都官方题解看完切掉了,没人看我的了qaq. 目录 Codeforces Round #665 (Div. 2) 题 ...

  2. Codeforces Round #612 (Div. 2) 前四题题解

    这场比赛的出题人挺有意思,全部magic成了青色. 还有题目中的图片特别有趣. 晚上没打,开virtual contest打的,就会前三道,我太菜了. 最后看着题解补了第四道. 比赛传送门 A. An ...

  3. Codeforces Round #665 (Div. 2)

     Codeforces Round #665 (Div. 2)  A. Distance and Axis 如果\(B\)在\(O\)左边,那么只能是定值\(OA\) 如果\(B\)在\(OA\)中间 ...

  4. Codeforces Round #198 (Div. 2)A,B题解

    Codeforces Round #198 (Div. 2) 昨天看到奋斗群的群赛,好奇的去做了一下, 大概花了3个小时Ak,我大概可以退役了吧 那下面来稍微总结一下 A. The Wall Iahu ...

  5. Codeforces Round #672 (Div. 2) A - C1题解

    [Codeforces Round #672 (Div. 2) A - C1 ] 题目链接# A. Cubes Sorting 思路: " If Wheatley needs more th ...

  6. Codeforces Round #665 (Div. 2) D. Maximum Distributed Tree 题解(贪心+易错)

    题目链接 题目大意 给你一课树,要你给每一条边分权值,每条边的权值大于0,他们的乘积等于k,而且要使得n-1条边1的数量尽可能少,定义 f(u,v)为u到v的边权和求 \(\max \sum_{i=1 ...

  7. Codeforces Round #614 (Div. 2) A-E简要题解

    链接:https://codeforces.com/contest/1293 A. ConneR and the A.R.C. Markland-N 题意:略 思路:上下枚举1000次扫一遍,比较一下 ...

  8. Codeforces Round #610 (Div. 2) A-E简要题解

    contest链接: https://codeforces.com/contest/1282 A. Temporarily unavailable 题意: 给一个区间L,R通有网络,有个点x,在x+r ...

  9. Codeforces Round #611 (Div. 3) A-F简要题解

    contest链接:https://codeforces.com/contest/1283 A. Minutes Before the New Year 题意:给一个当前时间,输出离第二天差多少分钟 ...

随机推荐

  1. proj0的具体实现 #CS61B-sp18

    https://github.com/Centurybbx/sp18-century/tree/master/proj0 proj0的具体实现在上面的Github中. 在proj0中我明显感受到国外大 ...

  2. Spring学习之AOP的实现方式

    Spring学习之AOP的三种实现方式 一.介绍AOP 在软件业,AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期间动态代理实现程序功能 ...

  3. 第七章 vuex专题

    一.Vuex安装 一般在创建项目是会选择 Vuex,如果没有选择: cnpm install vuex  --save 使用: import Vuex from "vuex"; V ...

  4. UOJ 422 [集训队作业2018] 小Z的礼物 min-max容斥 期望 轮廓线dp

    LINK:小Z的礼物 太精髓了 我重学了一遍min-max容斥 重写了一遍按位或才写这道题的. 还是期望多少时间可以全部集齐. 相当于求出 \(E(max(S))\)表示最后一个出现的期望时间. 根据 ...

  5. [转]new一个对象的过程中发生了什么?

    来自:沉默哥 | 公号 :程序员小乐 链接:cnblogs.com/JackPn/p/9386182.html Java在new一个对象的时候,会先查看对象所属的类有没有被加载到内存,如果没有的话,就 ...

  6. 关于DateTimeOffset的爱恨情仇

    为什么要上DataTimeOffset?因为DateTime无法解决时区问题,经常需要时间戳转换日期,DateTimeOffset就是应运而生,数据格式储存了和UTC的时区差,C#几乎全几乎全版本支持 ...

  7. mac 教你如何在Mac上搭建自己的服务器——Nginx

    WHAT 本篇主要是基于Nginx在Mac上搭建自己的服务器. 我相信很多朋友肯定是第一次听到Nginx,关于它具有怎样的传奇,这儿肯定说不完也说不透. 有兴趣的朋友可以自行google或者baidu ...

  8. jersey简单总结与demo

    参考链接:https://www.iteye.com/blog/dyygusi-2148029?from=singlemessage&isappinstalled=0 测试代码: https: ...

  9. Android Spinner的简单用法。

    今天学到的是spinner,就是下拉列表,这可不是ExpandListView哈. 闲话不解释.这是控件,所以先上布局:就不上线性布局了,基本上可以总结出,控件都得在布局里写,写之前嵌个布局就行. & ...

  10. android基本操作

    1.页面跳转 activity_main.xml <?xml version="1.0" encoding="utf-8"?> <androi ...