太平洋赛题解
时间:2020-05-30
本文章向大家介绍太平洋赛题解,主要包括太平洋赛题解使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
题解:
t1:
代码:
#include <cstdio>
int main(){
int a,b,c;
scanf("%d%d%d",&a,&b,&c);
printf("%d",a+b+c);
return 0;
}
典型的入门问题a+b problem的一点拓展.
看到fi=a*f_{i-1}+b*f_{i-2}+c*Ci2很容易想到矩阵快速幂:
巧妙的避开了/2的问题
当然你无法巧妙的避开搞个逆元也行
实在不行mod*2到时候再除也行.
当然这题的精华不在于推矩阵,而在那个拓展,没人ak我们的比赛,所以说拓展题就不提了(如果比赛后有人ak也可以找我要哦).
代码:
#include <cstdio> #include <cstring> const long long mod=19260817; long long aa,b,c,js1,js2,n; struct JZ{ long long a[5][5]; JZ(int s){ if(s==0){memset(a,0,sizeof(a));} if(s==1){ memset(a,0,sizeof(a)); a[0][0]=js2;a[1][0]=js1;a[2][0]=3;a[3][0]=3;a[4][0]=1; } if(s==2){ memset(a,0,sizeof(a)); a[0][0]=aa;a[0][1]=b;a[0][2]=c;a[1][0]=1;a[2][2]=1;a[2][3]=1;a[3][3]=1;a[3][4]=1;a[4][4]=1; } } friend JZ operator * (JZ a,JZ b){ JZ c(0); for(int i=0;i<=4;i++) for(int j=0;j<=4;j++) for(int k=0;k<=4;k++){c.a[i][j]+=b.a[i][k]*a.a[k][j];c.a[i][j]%=mod;} return c; } }; void cl(){ int t; scanf("%d",&t); for(int i=1;i<=t;i++){ scanf("%lld%lld%lld%lld%lld%lld",&aa,&b,&c,&js1,&js2,&n); aa%=mod;b%=mod;c%=mod;js1%=mod;js2%=mod;n-=2;JZ an(1);JZ s(2); while(n){if(n&1) an=an*s;n>>=1;s=s*s;} printf("%d\n",an.a[0][0]); } } int main(){cl();return 0;}
t2:
首先我们要先看一下这些数字有什么性质(p^0,p^1,p^2...)
很容易发现他们%(p+1)只能得到1和p,证明:
p^0%(p+1)=1
p^1%(p+1)=p
p^2%(p+1)=(p+1-1)^2%(p+1)=1
p^(奇数)%(p+1)=(p^2)^n*p^1=p
p^(偶数)%(p+1)=(p^2)^n=1
于是我们这样考虑,假设n<=p,等于p的话先手就一定获胜(直接拿p个走人)n<p的话那么只能一个一个p%2=1则先手胜否则后手胜
如果n>p,如果n%(p+1)的结果为先手赢,于是先手就会先"搞一局",然后无论后手怎么拿,这要他凑一下mod(p+1)为0就行了(mod只有p和1,能配成),于是先手胜
如果n%(p+1)为后手胜的情况,后手只要配p+1的整数倍最后把先手搞一下就行了
然后由于n比较大,边读边去mod就行了
代码:
#include <cstdio> void cl(){ int t; scanf("%d",&t); for(int jsjs=1;jsjs<=t;jsjs++){ long long p,q; scanf("%lld%lld",&p,&q); p++; long long ha=0; char ch=getchar(); for(;;){ ch=getchar(); if(ch<'0'||ch>'9') break; ha=(ha*10+ch-'0')%(long long)p; } if(ha==p-1||ha%2) printf("lsx\n"); else printf("gjk\n"); } } int main(){cl();return 0;}
原文地址:https://www.cnblogs.com/wish-all-ac/p/12994100.html
- 微信官方开源UI库-WeUI
- ViewFlipper实现多页面切换
- Ubuntu & Fedora Mono 2.8 安装脚本
- android下拉加载更多
- 在 Windows 上安装Rabbit MQ 指南
- CentOS 7 安装RabbitMQ 3.3
- 神经网络
- Node.js Leap Motion Hello World——开启AR的小窗
- 微信小游戏:无法进行网络请求的解决方案
- 微信跳一跳之深度实践
- 前端工程师在业余时间如何提高自身能力——造轮子
- 我是如何Hack掉一个机器人!
- SliferMenu详解
- Android 深入ViewPager补间动画,实现类京东商城首页广告Banner切换效果
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Flutter基础widgets教程-TabBarView篇
- 求求你不要在用!=null判空了
- Geant4--root和csv文件存储
- 爬虫模拟登录破解无原图滑动验证码
- Flutter基础widgets教程-TabBarView篇
- python + selenium 爬虫模拟登录破解无原图滑动验证码
- python 轻量级定时框架apscheduler,周中定时给自己发送邮件。
- python 舆情分析 nlp主题分析 (1) 待续
- Flutter基础widgets教程-Text篇
- python 舆情分析 nlp主题分析 (2)-结合snownlp与jieba库,提高分词与情感判断 待续
- No qualifying bean of type 'com.pjh.service.Imp.serviceImp' available和Exception in thread "main" jav
- python音频文件中pcm格式提取
- Spring系列之事务的控制 注解实现+xml实现+事务的隔离等级
- Leetcode刷题 237. 删除链表中的节点 两行代码实现
- python提取视频第一帧图片