更好的阅读体验

我的博客观看

T1-Mike and gcd problem

Mike给定一个n个元素的整数序列,A=[a1,a2,...,an],每次操作可以选择一个i(1≤i<n),将a[i],a[i+1]变成a[i]-a[i+1]和a[i]+a[i+1]。现在想要的是A序列所有元素的最大公约数大于1,请计算最少的操作次数。

解法

如果一开始就满足要求,直接输出YES 0

如果不满足,一定是把奇数变成偶数

有2种情况:

奇数 奇数 只需要一次操作

奇数 偶数 需要两次操作

然后就好了

ac代码

#include<bits/stdc++.h>
using namespace std;
int gcd(int a,int b){return b==0?a:gcd(b,a%b);}
int n,a[100010],s,x;
int main()
{
scanf("%d",&n);
for(int i=1;i<=n;i++)scanf("%d",&a[i]);
s=a[1];
for(int i=2;i<=n;i++)s=gcd(s,a[i]);
puts("YES");
if(s!=1)puts("0");
else
{
s=0;
for(int i=1;i<=n;i++)
{
if(a[i]&1)
{
i++;
if(a[i]&1)s++;
else s+=2;
}
}
printf("%d\n",s);
}
return 0;
}

T2-Mike and distribution

给两个长度为n的数列A,B,要求至多选择n/2+1个下标,使得A数组中选出的数的和的两倍大于sumA,B数组中选出的数的和的两倍大于sumB

解法

按a序列排序,然后2个2个取,注意的是要先取最大的那一个

可以保证都大于一半

ac代码

#include<bits/stdc++.h>
using namespace std;
struct node{int x,y,num;}a[100010];
int n,cnt,ans[100010];
int cmp(node x,node y){return x.x==y.x?x.y>y.y:x.x>y.x;}
int main()
{
scanf("%d",&n),cnt=0;
for(int i=1;i<=n;i++)scanf("%d",&a[i].x);
for(int i=1;i<=n;i++)scanf("%d",&a[i].y);
for(int i=1;i<=n;i++)a[i].num=i;
sort(a+1,a+1+n,cmp),ans[++cnt]=a[1].num;
for(int i=2;i<=n;i+=2)
{
if(a[i].y>a[i+1].y)ans[++cnt]=a[i].num;
else ans[++cnt]=a[i+1].num;
}
printf("%d\n",cnt);
for(int i=1;i<=cnt;i++)printf("%d ",ans[i]);
return 0;
}

最新文章

  1. 集群CLUSTER种类介绍
  2. Svg path画线(不管是直线还是曲线)在一定情况下线条的宽度不一的情况(记录)
  3. 机器学习Python包
  4. codeforces 460D Little Victor and Set(构造、枚举)
  5. C++网络编程 Java网络编程
  6. So easy Webservice 4.Java方式访问WebService(使用jdk1.6以上 wsimport命令)
  7. 2013-10-25笔记,css: mini-width, 标准居中,样式中*号使用,背景图像位置定位
  8. [PWA] 2. Service worker life cycle
  9. linux 系统下配置安装 java jdk 图文流程
  10. poj 1949 Chores 最长路
  11. 转:Loadrunner——Block(块)技术
  12. su 切换用户的提示&quot;This account is currently not available&quot;
  13. 重新绑定ItemsSource先设置ItemsSource = null;的原因
  14. mysql权限参考
  15. JavaScript大杂烩14 - 使用JQuery(上)
  16. Android学习之基础知识五—编写聊天界面
  17. Java中使用Timer和TimerTask实现多线程
  18. Struts框架核心工作流程与原理
  19. 02 使用Mybatis的逆向工程自动生成代码
  20. 由一条普通的link引用引发的无数问号,大家能回答的帮忙回答回答吧.

热门文章

  1. vue router 传递参数
  2. C# 实现生成带二维码的专属微信公众号推广海报
  3. dwc_otg驱动 &quot;BUG: sleeping function called from invalid context at mm/page_alloc.c&quot;
  4. Facebook巴特尔与谷歌移动广告 急于打开中国市场
  5. ios7 左右searchbar在设置cancelButton的title属性
  6. OpenCV实现朴素贝叶斯分类器诊断病情
  7. python3使用多代理访问网站
  8. ASP.NET Core 简介 - ASP.NET Core 基础教程 - 简单教程,简单编程
  9. 文件上传(bootstrap fileinput)
  10. Angular语法(一)——展示数据