oj记录 牛客小I白月赛50 C减法与求余 (思维
题目描述
链接:https://ac.nowcoder.com/acm/contest/11227/C
来源:牛客网
鸡尾酒的学生丹丹分不清求余和减法,因为他觉得两种运算都是将一个数字变小,所以都差不多。
为了让丹丹能够更好地理解求余和减法,鸡尾酒给了他这样一个问题:
给定 nn 个数字,每次有两种操作:
- 从所有正整数中任选一个数字 x(x >= 2)x(x>=2),并将所有数字全部对 xx 求余。
- 从这 nn 个数字中任选一些数字,使得它们全部减去一。
问最少进行多少次操作可以让所有数字全部变为 0。
这两种操作都需要“任选”,而丹丹有选择困难症,所以无法解决这一问题,你可以帮帮他吗?
题意
思路
- 意识到操作次数不会大于两次,因为可以把所有的奇数减一变为偶数,然后把所有偶数mod 2。
- 考虑小于2的情况:
- 全为0,不需要操作(因为没注意可以为0wa一次)
- 全为偶数,直接mod2
- 含奇数,全为1,直接全减一
- 含奇数,但不全为1,必须操作两次
- 含奇数,但没有1最小值,检验每个数是否为最小数的倍数
code
#include<bits/stdc++.h>
#define DEBUG(x) #x<<":"<<(x)<<' '
using namespace std;
typedef pair<int,int> PII;
typedef long long ll;
// const int mod=1e9+7;
const int N=1e5+10;
vector<int> vec;void solv()
{int n,t,ans=0;int cntodd=0,cnteven=0,cnt1=0;cin>>n;int minn=0x3f3f3f3f;for(int i=1;i<=n;i++){cin>>t;if(t){vec.push_back(t);if(t&1)cntodd++;else cnteven++;if(t==1)cnt1++;minn=min(minn,t);}}n=vec.size();if(n==0)ans=0;else if(cnteven==n)ans=1;else{if(cnt1==n)ans=1;else if(minn==1)ans=2;else{ans=1;for(int i=0;i<n;i++){if(vec[i]%minn){ans=2;break;}}}}cout<<ans<<'\n';
}int main()
{ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);int T=1;// cin>>T;while(T--){solv();}return 0;
}
注意与总结
- 这里直接将所有0舍去,n中减去0的个数有助于简化后面的判断条件
知识补充
oj记录 牛客小I白月赛50 C减法与求余 (思维相关推荐
- oj记录 牛客 高校赛 C派蒙的奇妙冒险------石之海
题目描述 链接:https://ac.nowcoder.com/acm/contest/33869/C 来源:牛客网 题意 思路 其实只需要判断有没有素数即可,因为最少的染色策略是让所有的素数的颜色相 ...
- oj记录 牛客 高校赛 派蒙大小姐想让你告白
题目描述 题意 思路 检查子串 code #include<bits/stdc++.h> #define DEBUG(x) #x<<":"<<( ...
- 牛客小d和孤独的区间
牛客小d和孤独的区间 这道题我们如果等到数据都输入完后再计算会浪费很多时间 所以还是每次输入都计算一遍 我们知道要找到一个区间里只有一个1,其余都是0 所以这时候我们可以将输入分为两种情况 1,输入为 ...
- 算法记录 牛客网 leetcode刷题记录
算法记录 & 牛客网 & leetcode刷题记录 解题思路 STL容器 常用算法模板 堆排序 插入排序 快速排序 BFS层序遍历 二叉树 JZ55 二叉树的深度 BST(binary ...
- 刷题记录:牛客NC15029吐泡泡
传送门:牛客 小鱼儿吐泡泡,嘟嘟嘟冒出来.小鱼儿会吐出两种泡泡:大泡泡"O",小泡泡"o". 两个相邻的小泡泡会融成一个大泡泡,两个相邻的大泡泡会爆掉. (是的 ...
- E Groundhog Chasing Death(2020牛客暑期多校训练营(第九场))(思维+费马小定理+质因子分解)
E Groundhog Chasing Death(2020牛客暑期多校训练营(第九场))(思维+费马小定理+质因子分解) 链接:https://ac.nowcoder.com/acm/contest ...
- 刷题记录:牛客NC22164更相减损术
传送门:牛客 题目描述: 利用更相减损术求两个整数的最大公约数,即每次将较大的数变成大数减去小数的值 输入: 4 6 输出: 2 这道题的题目就表明了用更相减损术来求这道题的gcd值(即最小公约数), ...
- 牛客小bai月赛39 F 孤独(dp)
牛客小白月赛39 F 孤独 #include <bits/stdc++.h> using namespace std; typedef long long ll; int ans = IN ...
- 刷题记录:牛客NC15162小H的询问
传送门:牛客 题目描述: 小H给你一个数组{a},要求支持以下两种操作: 1. 0 l r(1<=l<=r<=n),询问区间[l,r]中权值和最大的有效子区间的权值和,一个子区间被认 ...
最新文章
- OpenLDAP、什么是目录服务、OpenLDAP简介、LDAP的基本模型、目录树概念、(DC、UID、OU、CN、SN、DN、RDN、c、o)、LDAP的使用
- 【计组实验】P2 Modelsim Verilog单周期处理器开发 MIPS指令集
- 【Ubuntu16.04-opencv3.4.0-FDDB Evaluation】评测代码使用中遇到对‘cvxxx’未定义的引用问题
- 老司机教你分析日志:分析用户的地理位置信息
- windowsXP/7下消除快捷键箭头的方法
- 为什么大部分的程序员成不了架构师?为什么?
- 安装apk出现Parse error when parsing manifest. Discontinuing installation.解决方案
- 定时器0练习,利用左循环函数_crol_(a,b)
- 行动是最好的告白,钟意社科院杜兰金融管理硕士项目的你不要错过机会
- 冻结pexcel 代码 -- 这次看看能坚持多久
- 华为高端机mate20遇到了冲击高端手机市场的好时机
- Excel的题库转换为word的题库
- python列表两两相减_【数据分析入门】之:如何用Python代替Excel(1)
- 【USB接口程序设计】
- 计算机房摆放布局,【机房】强弱电机房位置大小及布置(附案例)
- #include<>和#include“ “
- 线程同步与线程同步的必要性
- 如何给App快速搭建虚拟服务器
- backtrack回溯算法
- java 虚拟机字节码指令表
热门文章
- 博弈——悼念512汶川大地震遇难同胞——选拔志愿者(巴什博弈)
- SkyNet:字节跳动泛客诉问题挖掘与风险监控中台实践
- 用python搭建微商城_GitHub - pythonsir/wx-mobile-app: 基于 React.js 的微商城
- 操盘手的选股技巧,使用海龟交易法则应对证券牛市市场
- SEC成立新机构聚焦数字货币细分领域,提供ICO监管新思路
- 实现财务自由 之 打新股(申购新股),A 股怎么打新,打新的注意事项
- 易经之潜龙见龙惕龙 No.206
- ServiceNow - 删除更新集合(Delete UpdateSet)
- 微信小程序布局篇课程构思----Position+Flex
- 树莓派4B:安装QT5开发环境