SDNU_ACM_ICPC_2021_Winter_Practice_4th [个人赛]
D - Odd Divisor
题意:
给你一个n,问你n是否至少有一个奇数因子(这里题意没说清,没说是不是只有一个还是可以有多个!AC以后才发现是不止一个
思路:
如果这个数没有奇数因子,那它肯定是2^k
1.所以我就开始用循环除2,看看最后是不是奇数,1除外,因为2的k次方除到最后就剩下1,所以得特判。但是这个做法感觉还是不够妙
再两个妙的做法:
2.因为2^k是指数函数,而与指数函数互为反函数的对数函数,所以我们可以用对数函数来判断是不是2的k次方
if((int)log2(n) == log2(n))
cout<<"NO\n";
else
cout<<"YES\n";
3.因为是2的k次方,所以对于他的二进制来说,除了首位是1,其他位应该是0,所以可以利用n&(n - 1)来判断。如果是2的幂次,那么n-1的二进制应该是全是1,这与n是刚好相反的,所以取并,得到的肯定是0.
if(n & (n - 1))
cout<<"YES\n";
else
cout<<"NO\n";
下面是第一种做法的AC码
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll n, k, m;
int main()
{
cin>>n;
while(n--)
{
scanf("%lld",&m);
//cout<<m<<endl;
while(m)
{
if(m % 2 == 0)
m /= 2;
else
break;
}
//cout<<m<<endl;
if(m % 2 == 1 && m != 1)
cout<<"YES"<<endl;
else
cout<<"NO"<<endl;
}
return 0;
}
E - New Year's Number
题意:
给你一个数,让你判断是不是由2020或2021组成的
思路:
因为2020与2021相差不大,2021可以看出2020 + 1,所以我们可以对2020取余,得到余数a,再用那个数除以2020,得到商b,只需要比较b是否大于等于a即可。
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll n, k, m, ans;
int main()
{
cin>>n;
while(n--)
{
cin>>m;
k = m % 2020;
ans = m / 2020;
if(ans >= k)
cout<<"YES"<<endl;
else
cout<<"NO"<<endl;
}
return 0;
}
K - 取石子游戏
题意:
给你两堆石子,有两种取法,一是从任意一堆中取任意数量的石子,或者是同时对两堆取相同数量的石子,最后取完的人胜,你先手,如果最后是你赢就输出1,否则输出0
思路:
得先找到必败点,也就是奇异局势
(0,0)(1,2)(3,5)(4,7)……
这些都是必败点,可以发现数之间的差值是成等差数列的,而且所有的自然数都包含在所有的必败点上。
剩下的就是找规律了
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ni1Q3g24-1611845112193)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20210126205904000.png)]
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll a,b;
int main()
{
while(cin>>a>>b)
{
if(a > b)
swap(a, b);
if((int)((b - a) * (sqrt(5.0) + 1.0) / 2.0) == a)
cout<<0<<endl;
else
cout<<1<<endl;
}
return 0;
}
a) * (sqrt(5.0) + 1.0) / 2.0) == a)
cout<<0<<endl;
else
cout<<1<<endl;
}
return 0;
}
SDNU_ACM_ICPC_2021_Winter_Practice_4th [个人赛]的更多相关文章
- Contest1065 - 第四届“图灵杯”NEUQ-ACM程序设计竞赛(个人赛)A蔡老板的会议
题目描述 图灵杯个人赛就要开始了,蔡老板召集俱乐部各部门的部长开会.综合楼有N (1<=N<=1000)间办公室,编号1~N每个办公室有一个部长在工(mo)作(yu),其中X号是蔡老板的办 ...
- JSU省赛队员选拔赛个人赛1(Coin Change、Fibbonacci Number、Max Num、单词数、无限的路、叠筐)
JSU省赛队员选拔赛个人赛1 一.题目概述: A.Coin Change(暴力求解.动态规划) B.Fibbonacci Number(递推求解) C.Max Num(排序.比较) D.单词数 ...
- 贵州省网络安全知识竞赛个人赛Writeup
首先拖到D盾扫描 可以很明显的看出来确实就是两个后门 0x01 Index.php#一句话木马后门 0x02 About.php#文件包含漏洞 都可以很直观的看出来非常明显的漏洞,第一个直接就是eva ...
- SDNU_ACM_ICPC_2021_Winter_Practice_1st [个人赛] 2021.1.19 星期二
SDNU_ACM_ICPC_2021_Winter_Practice_1st [个人赛] K - Color the ball 题意: 有n个气球,每次都给定两个整数a,b,给a到b内所有的气球涂一个 ...
- Contest1065 - 第四届“图灵杯”NEUQ-ACM程序设计竞赛(个人赛)H吃薯条
题目描述 薯片这次又遇到问题了== 薯片有n个薯条棒,第i个薯条棒的长度为i,由于薯片能瞬间移动,所以薯片能在1秒内从这n个薯条棒里面选择一个或者多个,吃掉同样长的一部分, 并且被吃掉部分的长度是正整 ...
- Contest1065 - 第四届“图灵杯”NEUQ-ACM程序设计竞赛(个人赛)G爬楼梯
题目描述 由于第m个台阶上有好吃的薯条,所以薯片现在要爬一段m阶的楼梯. 薯片每步最多能爬k个阶梯,但是每到了第i个台阶,薯片身上的糖果都会掉落ai个,现在问你薯片至少得掉多少糖果才能得到薯条? 输入 ...
- Contest1065 - 第四届“图灵杯”NEUQ-ACM程序设计竞赛(个人赛)E粉丝与分割平面
题目描述 在一个平面上使用一条直线最多可以将一个平面分割成两个平面,而使用两条直线最多可将平面分割成四份,使用三条直线可将平面分割成七份--这是个经典的平面分割问题,但是too simple,作为一个 ...
- Contest1065 - 第四届“图灵杯”NEUQ-ACM程序设计竞赛(个人赛)D拿糖果
题目描述 薯片和他的朋友薯条来到了商店,商店有n个糖果,标号依次为1,2,3....n,对应的价值为W1,W2,W3...Wn.现在薯片先拿走一个标号为a的糖果,标号小于a的糖果就被商家收回去了,然后 ...
- Contest1065 - 第四届“图灵杯”NEUQ-ACM程序设计竞赛(个人赛)C粉丝与汉诺塔
题目描述 苟利国家生死以,岂因福祸避趋之?作为ACM真正的粉丝,应该都听闻过汉诺塔问题,汉诺塔问题是这样的: 有三根柱子,编号A,B,C柱,初始情况下A柱上有n个盘子,小盘子在上大盘子在下,n个盘子大 ...
随机推荐
- PHP简单的计算位数的函数
一个简单的PHP计算位数的函数: 1 <?php 2 //一个简单的计算字符串有长度的函数 3 #开始定义函数 4 function count_digit($number){ 5 $count ...
- HCIP -- OSPF 总结
OSPF:Open Shortest path First :开方式最短路径优先 一.基础知识: 1.使用范围:IGP 2.协议算法特点:链路状态型路由协议,SPF算法 3.协议是否传递网络掩码:是 ...
- checkBox判断是否选中的方法
这里可以分为两种情况:JQuery对象和DOM对象: 通常我们用JQuery判断元素的属性的时候喜欢用 attr("attrName"); 但是尝试过的同学可能都知道,这种方法判断 ...
- Python基础(上篇)
本篇文章主要内容:变量.注释.运算符.关键字.数据类型. 在入手变量之前我们先来看看经典的编程语句 → hello world 在python3中输出到控制台的函数是print() print(&qu ...
- mysql多个TimeStamp设置
mysql多个TimeStamp设置 2012-11-02 12:58 轩脉刃 阅读(39590) 评论(3) 编辑 收藏 timestamp设置默认值是Default CURRENT_TI ...
- bean中属性名和json不一致解决方案(请求和响应)
此时@RequestBody.@ResponseBody需要与@JsonProperty结合使用,才能做到请求正常解析,响应按要求格式返回. 注意@JsonProperty注解的位置需要加在gette ...
- 在wildfly 21中搭建cluster集群
目录 简介 下载软件和相关组件 配置domain 创建应用程序 部署应用程序 集群配置 总结 简介 wildfly是一个非常强大的工具,我们可以轻松的使用wildfly部署应用程序,更为强大的是,wi ...
- Eureka Server启动过程分析
1.首先,SpringCloud充分利用了SpringBoot的自动装配特点 eureka-server的jar包,发现在META-INF下面的配置文件spring.factories,里面记录了Sp ...
- Adnc简介
Adnc是一个轻量级的.Net Core微服务(microservices)快速开发框架,同时也可以应用于单体架构系统的开发.框架基于JWT认证授权,包含基础的后台管理功能,代码简洁.易上手.学习成本 ...
- [强制]IDE使用UTF-8和LF
Java 程序开发常用的集成开发环境(IDE)有Eclipse和IntelliJ IDEA.Eclipse是免费开源的,很多早期程序员使用它的比较多.IntelliJ IDEA有社区版和企业版,社区版 ...