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的更多相关文章

随机推荐

  1. C# 编写一个小巧快速的 Windows 动态桌面软件

    开源自己前段时间使用 C# 编写的 Windows 动态桌面软件,在接下来的博客我将描写一些技术细节和遇到的一些坑.这个软件可以把视频设置成桌面背景播放,不仅如此而且还可以把网页或一个网页文件设置成桌 ...

  2. Centos7源码部署Redis3.2.9

    目录 一.环境准备 二.安装 三.测试 四.编写启动脚本 一.环境准备 [Redis-Server] 主机名 = host-1 系统 = centos-7.3 地址 = 1.1.1.1 软件 = re ...

  3. CTF 自动拼图

    忘记在哪个群里面看见有师傅说过这样一句加,百度搜索"CTF拼图脚本,有惊喜". 在做JUSTCTF的题时候,看到一道拼图题.就想着试一试. 先百度搜了,看到了fjh1997师傅的一 ...

  4. 日程选项卡的设置(Project)

    <Project2016 企业项目管理实践>张会斌 董方好 编著 在使用任何一个软件之前,都有一些默认的东东要改,比如在Excel里有人不待见单元格里的0,一定要设置成不显示零值:在Wor ...

  5. CF1059A Cashier 题解

    Content 定义一天长度为 \(L\),每次休息的时间为 \(a\).一天会有 \(n\) 个客人到访,第 \(i\) 个客人会在 \(t_i\) 的时刻到访,会停留 \(l_i\) 的时间.只有 ...

  6. 多线程多进程学习threading,queue线程安全队列,线程间数据状态读取。threading.local() threading.RLock()

    http://www.cnblogs.com/alex3714/articles/5230609.html python的多线程是通过上下文切换实现的,只能利用一核CPU,不适合CPU密集操作型任务, ...

  7. AcWing1264. 动态求连续区间和 (线段树做法)

    1.题目 给定 n 个数组成的一个数列,规定有两种操作,一是修改某个元素,二是求子数列 [a,b] 的连续和. 输入格式 第一行包含两个整数 n 和 m,分别表示数的个数和操作次数. 第二行包含 n ...

  8. flink启动报错:java.lang.NoSuchMethodError: org.apache.flink.api.java.ClosureCleaner.clean(Ljava/lang/Object;Z)V

    这是因为pom文件引入的flink相关依赖设置成了provided 作用域 要嘛把这个去掉 但是如果是IDEA的话 可以更简单的操作 把这个打勾保存 接着重新启动main方法即可

  9. docker启动WARNING:IPv4 forwarding is disabled. Networking will not work.

    docker启动容器报错IPv4 forwarding is disabled. Networking will not work. [root@localhost ~]# docker run -p ...

  10. UDP&串口调试助手用法(4)

    接收配置用法 概览 保存文件 可将数据保存到文件和文件夹 如果选择的时文件,则需要自己手动选择保存的文件. 如果选择的时文件夹,则需要指定文件夹的类型和文件的后缀 支持保存文件类型: 文本文件和二进制 ...