codeforce Round #665(div 2)A B C
A. Distance and Axis
题意:在一个0x轴上,给了a在0x轴上的坐标,要你放一个b点使得abs(0B - AB)的值等于 k,但是有的时候如果不移动A点就不能实现这个条件,所以要你求,移动A点的最小距离,让你满足这个条件。
分析:这是要求0B和AB的差距,也就是它们之间的相差多少,也就是将0A分成三份,两份相同的距离就是0B和AB相同的部分x,还有一部分就是0B和AB的相差距离,也就是k,那么我们就可以表示为2x + k = n,所以我们可以从这个式子中分析出,只要n >= k ,并且n减去一个偶数的结果要等于k这个偶数可以是0,如果没有这样的偶数的话,那么A只需要往后移动一步就可以了,反之一步都可以不用,如果n < k的话,那就可以让A移动到(0,k),这样就可以将B点放在原点就可以了。
下面看AC代码:

#include <bits/stdc++.h>
#include <iostream>
#include <cstdio> using namespace std;
typedef long long ll;
const int ma = 1e5 + ;
int n,m,k,num[ma];
char c[ma];
string s; int main()
{
int t;
scanf("%d",&t);
//2x + k = n
while(t--)
{
scanf("%d%d",&n,&k);
if(n < k)
cout<<k - n<<endl;
else if(n == k)
cout<<<<endl;
else
{
if((n - k) & )
puts("");
else
puts("");
}
}
return ;
}
A
B. Ternary Sequence
题意:输入给出六个数字,前三个数字分别为a的0,1,2的个数,也就是说,x1是有x1个0,y1是有y1个1,z1是有z1个2,并且保证a和b的数字数目相等,要你给a,b序列排序,使得sum值最大,a,b的和是这样求的,如果a[i] > b[i] 那么在第i个的值就是a[i]*b[i],如果相等的话,第i个值就是0,如果小于的话,第i个值就是-a[i]*b[i].
分析:因为只有a[i] > b[i] 才会产生值,也就是说当a[i] == 1,b[i] == 0,和a[i] == 2,b[i] == 1,这两种情况,第一种情况产生的值是0,也就是没意义了,因为它不能给sum做贡献,第二种产生的值就是2(1*2 = 2)了,所以由分析的结果可以知道,必须要a的2尽可能的和b中的1匹配,这样就会让正数最大,因为还有可能会有负数的出现,我们可以分析一下负数出现的可能性,出现负数那就说明a[i] < b[i],当a[i] == 0时,b[i] 可以为1,2。那么分别的结果为-0*b[i]为0,都为0,当a[i] == 1时,b[i] 可以为2,此时的值为-2,因为相等等于0,所以不做贡献就可以不考虑了,所以要让a中的1尽可能的与b中的1,0相匹配,如果还匹配不了,那只能与b中的2匹配了,然后产生负值。
看代码

#include <bits/stdc++.h>
#include <iostream>
#include <cstdio> using namespace std;
typedef long long ll;
const int ma = 1e5 + ;
int n,m,k,num[ma];
char c[ma];
string s; int main()
{
int t;
scanf("%d",&t);
int x1,y1,z1;
int x2,y2,z2;
int sum,minn;
while(t--)
{
scanf("%d%d%d",&x1,&y1,&z1);
scanf("%d%d%d",&x2,&y2,&z2);
sum = ;
minn = min(y2,z1);
sum += *minn;
y2 -= minn,z1 -= minn;
if(y1 <= (y2 + x2))
cout<<sum<<endl;
else
{
cout<<sum - *(y1 - (y2 + x2))<<endl;
}
}
return ;
}
B
C. Mere Array
题意:输入给出一个长度为n的数字序列,要你给它们排序使得它们递增,可以进行两个数的交换,如果满足条件的话,这个条件就是a[i]和a[j]的最大公约数是这个序列的最小值。如果可以交换成这样的序列就输出yes,否则就输出no。
分析:有题意可知,要交换a[i]和a[j],就得有公共的约数min,那没必要交换的我们就可以不要动,所以我们可以检查一下需要交换的所有数是否可以被min整除,如果可以的话,就可以满足条件了,为什么呢?因为我们可以用这个最小数和每个需要交换的数字进行交换,这样就可以保证要交换的两个数的的最大公约数是min了,否则的话就输出no。
代码:

#include <bits/stdc++.h>
#include <iostream>
#include <cstdio> using namespace std;
typedef long long ll;
const int ma = 1e5 + ;
int n,m,k,num[ma];
int c[ma];
string s; int main()
{
int t;
scanf("%d",&t);
int x;
bool f;
while(t--)
{
scanf("%d",&n);
queue<int> q;
for(int i = ; i <= n; i++)
{
scanf("%d",num+i);
c[i] = num[i];
}
sort(c+,c++n);
x = c[];
for(int i = ; i <= n; i++)
{
if(num[i] != c[i])
q.push(num[i]);
}
f = ;
while(!q.empty())
{
if((q.front() % x))
{
f = ;
break;
}
q.pop();
}
if(f)
puts("no");
else puts("yes");
}
return ;
}
C
codeforce Round #665(div 2)A B C的更多相关文章
- Codeforces Round #581(Div. 2)
Codeforces Round #581(Div. 2) CF 1204 A. BowWow and the Timetable 题解:发现,$4$的幂次的二进制就是一个$1$后面跟偶数个$0$. ...
- Codeforces Round #334(div.2)(新增不用二分代码) B
B. More Cowbell time limit per test 2 seconds memory limit per test 256 megabytes input standard inp ...
- Codeforces Round #342 (Div 2) 解题报告
除夕夜之有生之年CF第一场 下午从奶奶家回到姥姥家,一看还有些时间,先吃点水果陪姥姥姥爷聊了会儿,再一看表,5:20....woc已经开场20分钟了...于是抓紧时间乱搞.. **A. Guest F ...
- Codeforces Round 1153(div. 2)
这场奇差.ABCD四题.179名. 但是E在现场有213个人做出. 描述一下我在35分钟做完D后的心路历程. 首先看到这道E,第一下想到的是把所有的横向和竖向的整列(行)求出相连的个数. 然后想如何能 ...
- codeforces Round #389(Div.2)C Santa Claus and Robot(思维题)
题目链接:http://codeforces.com/contest/752/problem/C 题意:给出一系列机器人的行动方向(机器人会走任意一条最短路径),问最少标记几个点能让机器人按这个 路径 ...
- Codeforces Round #345 (Div 2)
最后两题是orzCJK学长帮忙代打的,不过总算是到蓝名了(上次睡迟了,只剩半个小时,结果作大死点开题目看,结果rating掉了100多),还有论代码风格的重要性!!!(没写空格被学长各种D) A题 题 ...
- Codeforces Round #622(Div 2)C2. Skyscrapers (hard version)
题目链接 : C2. Skyscrapers (hard version) 题目描述 : 与上一道题类似,只是数据范围变大, 5e5, 如果用我们原来的方法,铁定是超时的. 考察点 : 单调栈,贪心, ...
- Codeforces Round #556(Div.1)
A 容易发现i,i+1至少有一个数出现,于是可以让尽量多的2和奇数出现 #include<bits/stdc++.h> using namespace std; int n,s1,s2; ...
- Codeforces Round #626 (Div. 2) B. Count Subrectangles
题目连接:https://codeforces.com/contest/1323/problem/B 题意:给一个大小为n的a数组,一个大小为m的b数组,c数组是二维数组c[i][j]=a[i]*b[ ...
随机推荐
- Django开发之Ajax POST提交403报错
问题现象 Django开发时,前端post提交数据时,由于csrf机制,如果不做处理会报403报错 问题解决 通过在data字段中添加 csrfmiddlewaretoken: '{{ csrf_to ...
- Python os.fchown() 方法
概述 os.fchown() 方法用于修改一个文件的所有权,这个函数修改一个文件的用户ID和用户组ID,该文件由文件描述符fd指定.高佣联盟 www.cgewang.com Unix上可用. 语法 f ...
- PHP strspn() 函数
实例 返回在字符串 "Hello world!" 中包含字符 "kHlleo" 的数目: <?php高佣联盟 www.cgewang.comecho st ...
- luogu P2607 [ZJOI2008]骑士 tarjan dp
LINK:骑士 本来是不打算写的 发现这道题在tarjan的时候有一个坑点 所以写出来记录一下. 可以发现图可能是不连通的 且一个连通块中是一个奇环树. 做法:类似tarjan找割点 然后把环给拉出来 ...
- luogu 3158 [CQOI2011]放棋子
时隔多日 我又来挑战这道dp. 几个月前给写自闭了.几个月后再来. 首先一个我们能列出来的状态 是以行为转移的 f[i]表示前i行...但是会发现此时列我们控制不了 且棋子的颜色,个数我们也要放到状态 ...
- 区块链钱包开发 - USDT - 一、Omni本地钱包安装
背景 Tether(USDT)中文又叫泰达币,是一种加密货币,是Tether公司推出的基于稳定价值货币美元(USD)的代币Tether USD,也是目前数字货币中最稳定的币,USDT目前发行了两种代币 ...
- ABAP 动态备份自建表数据到新表(自建表有数据的情况下要改字段长度或者其他)
当abaper开发好一个程序给用户使用一段时间后,发现某个字段的长度需要修改,但数据库表中已经存在很多数据,冒然直接改表字段可能会导致数据丢失,这种问题的后果可能非常严重. 所以我想到先复制出一个新表 ...
- JDK8的Stream操作
原文:https://mp.weixin.qq.com/s/N2zor5RzuHHTHQLHWVBttg 作者:思海同学 好好学java 其他资料:https://mp.weixin.qq.com/ ...
- Spring MVC method POST no supported
首先:一些隐含的知识点要知道 POST 的不支持对静态资源的访问[默认情况下是这样,个人不太了解,仅总结大概思路],如果是post 而响应的是个静态资源,则很多情况下出现这种错误 因此在使用POST应 ...
- js如何从一个数组中随机取出n个不同且不重复的值
前言 一位正在学习前端的菜鸟,虽菜,但还未放弃. 给大家画张图了解思路 以下是代码 function randomArr(arr,num){ let newArr = [];//创建一个新数组 for ...