2021杭电多校第八场补题
比赛传送门:Contest Problem List (hdu.edu.cn)
1006)GCD Game
题目翻译:爱丽丝和鲍勃正在玩游戏。 他们轮流操作。有n个数字,a1,a2,...,an。每次,玩家分 3 步进行游戏。 1.任意选择一个数字ai。 2.任意选择另一个数x(1≤x<ai)。 3. 用 gcd(ai,x) 替换数字 ai。
这里,gcd(u,v) 指的是 u 和 v 的最大公约数。 当玩家不能移动时,他/她就输掉了游戏。爱丽丝先走,她让你告诉她,如果两个玩家都有最佳策略,谁将赢得比赛。
样例:
2
1
1
1
2
输出:
Bob
Alice
题目分析:每次的操作都分为三步,要将其转化为自己的一个因数,那么对于某一个数字而言,它最多可操作的次数就取决于自己有多少个质因数(质数为1,合数不等比如4,可以变为2,再把2变为1,可操作两次,8可操作三次,其他同理)。因此,我们可以联想的典型的NIM函数,每个数字都可以看成一堆石子,质因数的个数可以看成是石子的数量。
解题思路:首先对数据范围之内的数字进行预处理,求出所有的数的质因数的个数,直接一个一个分解会T,这里我们采用欧拉筛(在筛的过程当中记录质因数个数),预处理完毕之后,直接采用NIM函数的结论:当a1^a2^a3^.....^an≠0的时候先手必胜,否则后手必胜。
代码如下:
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1e7+10;int n,m,a,cnt;
int num[N];//存每个数字的质因数个数
int prime[N];//记录素数
bool f[N];//判断过程当中的标记数组//经典欧拉筛 稍微改动
void find_prime(int n){for(int i=2;i<=n;i++){if(!f[i])prime[+cnt]=i,num[i]=1;//质数的质因数为1for(int j=1;j<=cnt&&i*prime[i]<=n;j++){f[i*prime[j]]=true;num[i*prime[j]]=num[i]+1;//记录质因子的个数if(i%prime[i]==0)break; } }
} int main(){find_prime((int)1e7);//预处理 int t;cin>>t;while(t--){cin>>n;cin>>a;int ans=num[a];//第一个数单独输入//nim结论 for(int i=2;i<=n;i++){cin>>a;ans^=num[a];}if(ans)cout<<"Alice"<<endl;else cout<<"Bob"<<endl;}return 0;
}
1003)Ink on paper
题目翻译:鲍勃不小心把几滴墨水洒在了纸上。第 i 滴墨水的初始位置是 (xi,yi),每秒向外扩展 0.5 厘米,显示一个圆圈。 好奇的鲍勃想知道所有墨水连接起来需要多长时间。为了方便输出,请输出时间的平方。
样例输入:
2
3
0 0
1 1
0 1
5
1 1
4 5
1 4
2 6
3 10
输出:
1
17
分析:任意两滴墨水都会同时扩散,我们要找所有的墨水连成一整块所花费的时间,可以将每滴墨水看成一个点,之间的距离看做边权,那么我们要求的便是把所有的点形成联通块所需的时间,其中因为所有的点是同时开始扩散的,所以,最长的时间取决于所有联通过程当中花费时间最大的两个点。转化为了最小生成树问题,直接套板子(prim算法)即可。
代码:
#include <bits/stdc++.h>
using namespace std;// t组数据 n个点 记录坐标 最远距离
//将该点加入集合的距离 标记数组 两点之间多条路径去取更短
long long t,n,x[5005],y[5005],ans,dis[5005],vis[5005],mind;//两点之间的距离
long long distance(int i,int j){return (x[i]-x[j])*(x[i]-x[j])+(y[i]-y[j])*(y[i]-y[j]);
} int main(){scanf("%lld",&t);while(t--){scanf("%dll",&n);for(int i=1;i<=n;i++)scanf("%lld %lld",&x[i],&y[i]);ans=0;memset(dis,0x7f,sizeof(dis));//初始化memset(vis,0,sizeof(vis));int u;dis[1]=0;//将1作为起点开始//经典板子for(int i=1;i<=n;i++){mind=0x7fffff;for(int j=1;j<=n;j++)//没有访问过 且距离更小 选择该点 if(!vis[j]&&dis[j]<mind)mind=dis[j],u=j;vis[u]=1;//标记已经访问 ans=max(ans,dis[u]);//更新最大值//优化通过这个点可以使得路径更短的点 for(int j=1;j<=n;j++)if(!vis[j])dis[j]=min(dis[j],distance(i,j)); }printf("%lld\n",ans); }return 0;
}
参考:杭电第八场 题解_Frank_Star的博客-CSDN博客
有什么问题还请大家指出 ^--^
2021杭电多校第八场补题相关推荐
- 2022 年杭电多校第八场补题记录
A Theramore 题意:给定一个长度为 nnn 的 010101 串,每次可以选取一个奇数长度的连续子串进行位置上的翻转,问经过若干次操作能得到的字典序最小的串.n≤5×105n \leq 5\ ...
- 2021牛客多校第八场补题 D-OR
链接:https://ac.nowcoder.com/acm/contest/11259/D 来源:牛客网 题目描述 There are two sequences of length n−1n-1n ...
- 2022杭电多校第八场题解
2022杭电多校第八场 Theramore(思维) 题意 给定一个01字符串,每次可以将一个奇数长度的区间翻转,求操作后字典序最小的字符串. 分析 翻转奇数长度的区间,元素位置的奇偶性不变,统计奇数位 ...
- 思维 ---- 两两匹配问题 2021杭电多校第6场 E - Median
题目链接 这种两两匹配问题很常见,打比赛的时候想了好久才想起来!,就要特判那个最大的集合,跟其他集合的关系 #include <bits/stdc++.h> #define mid ((l ...
- 2021杭电多校第3场_HDU6975_Forgiving Matching
Forgiving Matching 今天刚拜(强)托(迫)队友把FFT原理还有FFT匹配字符串问题给我讲通了. 晚点把这题补完!!
- 2022杭电多校第八场
文章目录 1001.Theramore 1007.Darnassus 1008.Orgrimmar 1011.Stormwind 1001.Theramore 易知,字符串的奇偶项之间不会互换,只需要 ...
- hdu 6656 2019杭电多校第7场 期望题
设f[i]为从i升级到i+1期望需要的金钱,由于每级都是能倒退或者升级到i+1,所以询问从l,r的期望金钱可以直接前缀和,那么推导每一级升级需要的期望钱也可以用前缀和推导 设sum[i]=f[1]+f ...
- 2019暑假杭电多校第6场签到题-1008-TDL
题目传送门 思路: 估计出n的范围,暴力就完事. 异或就是不进位的加法 (f(n,m) - n)^n == k, f(n,m)-n==k^n; 因为灯饰右边估计不会超过1e3,所以k^n<=1e ...
- 2021牛客多校第五场补题
B-Boxes 链接:https://ac.nowcoder.com/acm/contest/11256/B 来源:牛客网 题目描述 There're nn_{}n boxes in front o ...
最新文章
- 六、OpenStack配置计算结点
- 吴恩达:数据集的规模和学习机制都很重要!
- 基于微软企业库的AOP组件(含源码)
- 饥荒自建服务器崩了之后没有记录了,请问一下为什么服务器建一次之后就再也成功不了了。。...
- java websocket netty_基于netty实现的websocket
- maven原型_创建自定义Maven原型
- 中国移动游戏趋势洞察报告
- ssh (安全外壳协议)Secure Shell 百度百科
- UA PHYS515 电磁理论I 麦克斯韦方程组基础6 说明真空中电磁波传播速度等于光速
- 视频接口的种类及数据类型
- 如何引用维基百科Wikipedia
- Win10电脑需要安装杀毒软件吗?
- 土地日度交易数据2000-2022
- 腾云忆想技术干货|TSF微服务治理实战系列(三)——服务限流
- 【官方文档】Fluent Bit 安装在 Windows
- 【Latex】用Acrobat剪切pdf文件中图
- 2023 XL软件库App后端源码 可自定义易支付 完整版
- IOS 个人证书的申请
- 栈(stack)C语言实现(有详细注释讲解)
- Latex 命令速查
热门文章
- 第三方登陆实践之基于OAuth的FACEBOOK Web Login(最新版)
- 使用Xmanager 7连接centos7远程桌面
- debian之网易云音乐的安装
- 在Sublime Text 2中将默认语法设置为不同的文件类型
- 未来可能的安全焦点:GIS地理信息系统安全问题分析
- 万能手机usb内窥镜软件下载_万能证件生成器手机版-万能证件生成器手机版下载 v1.0 免费版...
- 【专利撰写】专利类型
- consume(consume名词)
- 掌握正确的指法---击键要领、雨儿五笔打字视频
- 一段用c#操作datatable的代码