[题解]LGR-180 Div.3 B&C
两道趣题。
(抽象的是\(C\)是原题,HDU2147,巴什博弈)
T2 ChS
赛时思路
一开始想的是用排列组合做,但是发现表示状态太麻烦,所以就想到做减法。
用\(fac\)表示总个数\(26^n\);用\(c1\)表示一个\(ab\)都没有的个数\(24^n\);用\(c2\)表示至少包含一个\(a\)的个数\(fac-25^n\)(即\(总数-一个a没有的\))。
偶然发现有点容斥的味道,答案就是\(c1-2*c2-fac\)。
题解思路
先写出总个数:\(26^n\)。
然后,\(a\)和\(b\)都不包含的个数:\(24^n\)。
再表示出没有\(a\)和没有\(b\)的个数:都是\(25^n\)。
也是容斥,答案为\(26^n-2*25^n+24^n\)。
注意
- 别忘取模。
- 开
long long。 - 需要注意的是,做了减法运算可能得出负数,而负数再取模会发生问题,所以可以用以下方法解决:
- 赛时:手写一下\(mod\),使取模的结果非负(调了我半天呜呜呜)。
- 题解:直接加一个\(mod\)再模,因为考虑最坏情况\(0-998244352=-998244352\),所以加一个就能保证非负了(题解加了\(10*mod\),一样的效果,但别加太多,小心超
long long)。
Code
赛时Code
#include<bits/stdc++.h>
#define int long long
#define mod 998244353
using namespace std;
int T,n;
int qpow(int base,int power){
int fac=1;
while(power){
if(power&1) fac=fac*base%mod;
base=base*base%mod;
power>>=1;
}
return fac;
}
int mo(int A,int B){
int t=A%B;
if(t<0) return t+B;
return t;
}
signed main(){
cin>>T;
while(T--){
cin>>n;
int fac=qpow(26,n);
int c1=qpow(24,n),c2=fac-qpow(25,n);
//c1表示一个ab都没有,c2表示至少一个a的个数;
cout<<mo(c1+2ll*c2%mod-fac,mod)<<endl;
}
return 0;
}
题解Code
#include<bits/stdc++.h>
#define int long long
#define mod 998244353
using namespace std;
int T,n;
int qpow(int base,int power){
int fac=1;
while(power){
if(power&1) fac=fac*base%mod;
base=base*base%mod;
power>>=1;
}
return fac;
}
signed main(){
cin>>T;
while(T--){
cin>>n;
cout<<(qpow(26,n)-2*qpow(25,n)+qpow(24,n)+mod)%mod<<endl;
}
return 0;
}
T3 Game
题解的思路是通过暴力程序找规律(\(N,M\leq 10^{18}\)没规律也不正常),就不放了。
赛时思路
经过一番思考,得到结论:都按完美策略发挥的情况下,先碰到上或右板边的一方必胜。
为什么呢?因为碰到上或右板边,就只能轮流往一个方向走了。举个例子,现在棋子在第二行,该你走棋,那么你应当让他碰到上边,但是具体应该向上走,还是向右上走,就要看目前到右板边的距离的奇偶性了。总之知道了这个结论就可以了,我们继续。
要想让我们先到达板边,就要让到右和上的距离都为偶数。这样,对方走一步,我走一步,一定是我先抵达。就这样,我们得出了结论,第一步要让到右边和到上边的距离都为偶数。
具体实现见代码。
赛后思考
也有另一种思考方式:我们每走完一步,都要让棋子到上板边和右半边的距离都是偶数。这样,对方无论怎么走,我们都能重新调整到这个状态。最后就可以达到终点(距离都为\(0\))。
Code
点击查看代码
#include<bits/stdc++.h>
#define int long long
using namespace std;
int t,n,m;
signed main(){
cin>>t;
while(t--){
cin>>n>>m;
if(n%2==1){
if(m%2==1) cout<<"-1\n";
else cout<<"1\n";
}else{
if(m%2==1) cout<<"2\n";
else cout<<"3\n";
}
}
return 0;
}
[题解]LGR-180 Div.3 B&C的更多相关文章
- Codeforces Round #180 (Div. 2) D. Fish Weight 贪心
D. Fish Weight 题目连接: http://www.codeforces.com/contest/298/problem/D Description It is known that th ...
- Codeforces Round #180 (Div. 2) C. Parity Game 数学
C. Parity Game 题目连接: http://www.codeforces.com/contest/298/problem/C Description You are fishing wit ...
- Codeforces Round #180 (Div. 2) B. Sail 贪心
B. Sail 题目连接: http://www.codeforces.com/contest/298/problem/B Description The polar bears are going ...
- Codeforces Round #180 (Div. 2) A. Snow Footprints 贪心
A. Snow Footprints 题目连接: http://www.codeforces.com/contest/298/problem/A Description There is a stra ...
- Codeforces Round #180 (Div. 1 + Div. 2)
A. Snow Footprints 如果只有L或者只有R,那么起点和终点都在边界上,否则在两者的边界. B. Sail 每次根据移动后的曼哈顿距离来判断是否移动. C. Parity Game 如果 ...
- 【读书笔记《Bootstrap 实战》】4.企业网站
上一章有对个人作品站点进行一些优化.本章,轮到我们充实这个作品站点了,补充一些项目,从而展示我们的能力.换句话说,我们要构建一个相对复杂的企业网站主页. 下面有几个成功企业的网站: □ Zappos ...
- 【Bootstrap】4.企业网站(待续)
上一章有队个人站点站点进行一些优化.本章,轮到我们充实这个作品站点了,补充一些项目,从而展示我们的能力.话句话说,我们要构建一个相对复杂的企业网站主页. 下面有几个成功企业的网站: □ Zappos ...
- 关于图像文章垂直无缝连接滚动——JS实现
<!-- 作者:chenyehuacecil@163.com 时间:2015-02-04 描述:实现整篇文章从下到上的无缝连接滚动--><html xmlns="http: ...
- 基于jQuery右下角旋转环状菜单代码
基于jQuery右下角旋转环状菜单代码.这是一款固定在页面的右下角位置,当用户点击了主菜单按钮后,子菜单项会以环状旋转进入页面,并使用animate.css来制作动画效果.效果图如下: 在线预览 ...
- ERP登录(八)
登录的存储过程: ALTER PROCEDURE [dbo].[UserLogin] @userid int output, @LoginName nvarchar(50), @Password nv ...
随机推荐
- 设置java程序的守护进程
1.在服务器执行:crontab -e 命令 2.在出现的界面编写cron表达式 3.编写guard_java_extbork.sh脚本 #!/bin/bash source /etc/profil ...
- kubernetes获取Pod内容器信息
一.简单说明 在实际的业务需求中,我们可能需要在写yaml文件的时候,可以在Pod的container内获取Pod的spec,metadata等信息,包含:node的名称,pod的名称,pod的nam ...
- 能看病的AI你见过吗:ChatMoney
本文由 ChatMoney团队出品 在当今这个科技飞速发展的时代,人工智能技术正在以惊人的速度改变着我们的生活,人工智能已经深入到各个领域,医疗行业也不例外. 而今天我要和大家聊一聊利用ChatMon ...
- 使用 SpringBoot 集成 WebService [需要身份验证]
使用 JDK 自带的 wsimport 工具生成实体类 1.1 创建身份验证文件(用于 Webservice 身份验证-auth.txt # 格式 http://账号:密码@wsdl地址 # 案例 h ...
- 以数据驱动PCB制造革新:盘古信息引领行业领军企业数字化范式跃迁
智能车间内,机械臂正以高精度程序设定完成钻孔作业:每台设备上方的电子看板实时跳动生产数据--订单交付周期.工艺参数偏差值.设备OEE效率指标清晰可见:物料配送AGV小车穿梭于货架间,通过RFID标签自 ...
- 我是一名数学专业的应届博士,我该如何选择offer?
这是IC男奋斗史的第5篇原创 关注公众号[IC男奋斗史],让我们一起撸起袖子加油干! 本文1396字,预计阅读4分钟. 本文来自私信咨询问答.杰哥已征得对方同意把内容展示在公众平台. 感谢对杰哥的信任 ...
- Oracle中复杂数据处理
利用聚合函数统计数据 求最大值-max() max()可应用数值型和字符型和日期型(实质也是数值型) select max(employee_age) max_age from employees m ...
- Hadoop:HDFS设计原理
一.HDFS组成结构 1.NameNode 相当于Master,主要存储文件的元数据(文件名.目录结构.文件属性等),以及每个文件的块列表和块所在的DataNode. 配置副本策略,管理数据库映射信息 ...
- Hugging Face 开源机器人 Reachy Mini 开启预定
Reachy Mini 是一款富有表现力的开源机器人,专为人机交互.创意编程和 AI 实验而设计.它价格亲民,体积小巧,却蕴藏着无限可能.无论年龄大小,全球的 AI 开发者都可以通过它共同编程.学习与 ...
- 长安车机安装三方APP
前言 长安车机目前为基于安卓自研的系统. 目前 默认这个车机系统,不允许安装三方软件,具体表现为:插入u盘识别不出里边的apk文件. 自带的软件版本都特别低,且不支持升级,只能等待整个车机系统连带升级 ...