文章目录
A. Odd Divisor(思维)
题意
- A. Odd Divisor(思维)
- 题意
- 解题思路
- Code
- B. New Year's Number(暴力+思维)
- 题意
- 解题思路
- Code
- C. Ball in Berland(思维)
- 题意
- 解题思路
- Code
- D. Cleaning the Phone(前缀+二分)
- 题意
- 解题思路
- Code
- E. Advertising Agency(组合数学)
- 题意
- 解题思路
- Code
给你一个n,如果n有一个奇数因子就输出YES,否则输出NO
解题思路我们从n开始判断当前是否是奇数,如果是,则直接输出YES,否则就一直右移一位直到n为1,然后输出NO
Code#include
using namespace std;
#define ll long long
bool f(ll n) {
while(n != 1) {
if(n%2 == 1)
return true;
n >>= 1;
}
return false;
}
int main()
{
ll n,x,t;
scanf("%lld",&t);
while(t--) {
scanf("%lld",&n);
if(f(n)) {
puts("YES");
}
else
puts("NO");
}
return 0;
}
B. New Year’s Number(暴力+思维)
题意
给你一个n问你是否能用一定数量的2020和2021凑齐n(刚好等于)
解题思路1.看一眼数据n的范围为[1,1e6],直接暴力二重循环跑500就行
2.我们可以先计算n对2020的余数a以及n对2020的商b,如果a >n; int a = n % 2020; int b = n / 2020; if(a > b) puts("NO"); else puts("YES"); } return 0; } C. Ball in Berland(思维) 题意
输入一个a,b,k分别表示男生的数量和女生的数量,以及k个组合,问你从中取出两组,且同一个人不能在两组有多少中组合方式
解题思路利用两个数组记录男女在组合中出现的次数,再遍历一遍所有组合,用总人数减去当前组的人物编号总共出现的次数,即冲突的组数,最后要加上自己。结果要开long long存储。
Code#include
using namespace std;
#define ll long long
const int N = 200005;
int a[N],b[N];
int fa[N],fb[N];
int main()
{
int t,A,B,k,temp;
scanf("%d",&t);
while(t--) {
scanf("%d%d%d",&A,&B,&k);
memset(fa,0,sizeof fa);
memset(fb,0,sizeof fb);
ll l = 0,r = 0;
for(int i = 0;i
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?