SYCOJ798Biorhythms
https://oj.shiyancang.cn/Problem/798.html
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int mod = 21252;
ll a[4],m[4];
ll M;
ll ex_gcd(ll a,ll b,ll &x,ll &y)
{
if(b==0){x=1,y=0;return a;}
ll d=ex_gcd(b,a%b,x,y);
ll temp=x;x=y;y=temp-a/b*y;
return d;
}
ll crt(ll n)
{
ll i,Mi,xi,yi,d,Ans=0;
M=1;
for(i=1;i<=n;i++)M*=m[i];
for(i=1;i<=n;i++)
{
Mi=M/m[i];d=ex_gcd(Mi,m[i],xi,yi);
Ans=(Ans+Mi*a[i]*xi)%M;
}
return (Ans%M+M)%M;//最小整数解,因为gcd为1所以直接M就可以了
}
int main()
{
ll k,t=0;
m[1]=23,m[2]=28,m[3]=33;
while(~scanf("%lld%lld%lld%lld",&a[1],&a[2],&a[3],&k),a[1]!=-1||a[2]!=-1||a[3]!=-1||k!=-1)
{
ll ans=crt(3);
while(ans<=k) ans+=M;//要超过k才行
printf("Case %lld: the next triple peak occurs in ",++t);
cout<<ans-k<<" days.\n";
}
return 0;
}
特殊情况的中国剩余定理,直接构造,因为gcd为1,并且在模M下具有唯一解,所以正常的模M就可以了。
但是要大于k,所以要到k之后。
SYCOJ798Biorhythms的更多相关文章
随机推荐
- [BUUCTF]PWN21——ciscn_2019_s_3
[BUUCTF]PWN21--ciscn_2019_s_3 附件 步骤 例行检查,64位,开启了NX保护 试运行的时候回显是一些乱码,直接用ida打开,从main函数开始看 main函数调用了vuln ...
- &pwn1_sctf_2016 &ciscn_2019_n_1 &ciscn_2019_c_1 &ciscn_2019_en_2&
在做buu题目的时候,发现在最上面有几道被各位师傅打到1分的题,强迫症逼迫我去做那几道题. 这里来试着去解决这些题...讲真的,我感觉自己刷题真的少,即使是很简单的栈题目,我还是能学习到新的东西.这里 ...
- [BUUCTF]REVERSE——内涵的软件
内涵的软件 附件 例行检查,32位程序 32位ida载入,shift+f12检索程序里的字符串 看到一个很像flag的字符串,拿去尝试一下,成功 flag{49d3c93df25caad8123213 ...
- spring security oauth2搭建resource-server demo及token改造成JWT令牌
我们在上文讲了如何在spring security的环境中搭建基于oauth2协议的认证中心demo:https://www.cnblogs.com/process-h/p/15688971.html ...
- 惊天大bug,一把螺丝刀,竟让我有家难回!
1.回家路上看一地摊,螺丝刀2元一把,买了一个 2.芒格说:"如果你的工具只有一把锤子,你会认为任何问题都是钉子 " 那么当我手里有了一把起子,我看啥都是螺丝钉子. 出租屋里固定门 ...
- birt分组时,如何让居中
birt分组时,如何让居中,如下图,选择cell格,然后调整属性为all,如下图所示,
- linux(centos)系统安装activemq
activemq是消息中间件,可以用来 解耦.消峰.异步 需要先安装jdk环境:https://www.cnblogs.com/pxblog/p/10512886.html 1.下载文件 (也可以直接 ...
- IDEA版本2020.1全局MAVEN配置
我们用IDEA打开项目有时候要每次配置maven地址,这样就很麻烦 我们可以直接设置全局的 这样所有新打开的项目都能使用
- 基于DNN的残余回声抑制
摘要 由于功率放大器或扬声器的限制,即使在回声路径完全线性的情况下,麦克风捕获的回声信号与远端信号也不是线性关系.线性回声消除器无法成功地消除回声的非线性分量.RES是在AES后对剩余回声进行抑制的一 ...
- ARTS Week 18
Algorithm 本周的 LeetCode 题目为 55. 跳跃游戏 给定一个非负整数数组 nums, 你最初位于数组的 第一个下标 .数组中的每个元素代表你在该位置可以跳跃的最大长度.判断你是否能 ...