luogu P3409 值日班长值周班长 exgcd
LINK:值日班长值周班长
题目描述非常垃圾。
题意:一周5天 每周有一个值周班长 每天有一个值日班长 值日班长日换 值周班长周换。
共n个值日班长 m个值周班长 A是第p个值日班长 B是第q个值日班长 问 最早是哪一天 使得值日班长为A且值周班长为B.
显然是一个类似于方程组的题目 可以列出方程 设是第x天.
\((x-p)\mod n=0\)
\(\lceil\frac{x}{5}\rceil \mod m=q-1\)
整到一个方程里就是 x=ny+p.
\(\lceil\frac{ny+p}{5}\rceil \mod m=q-1\)
解出来y即可。发现向上取整非常的不人性。
考虑到\(\frac{ny+p+bit}{5}==\lceil\frac{ny+p}{5}\rceil\)
枚举一下bit(0<=bit<=4)这样向上取整就可以被去掉 解同余方程即可。
有点晕了。。。写挂了。咕掉
ll T,n,m,p,q,xx,yy;
ll ans;
inline ll exgcd(ll a,ll b)
{
if(!b){xx=1;yy=0;return a;}
ll d=exgcd(b,a%b);
ll zz=xx;xx=yy;yy=zz-a/b*yy;
return d;
}
signed main()
{
freopen("1.in","r",stdin);
while(gt(n)==1)
{
gt(p);ans=0;
gt(m);gt(q);if(q==m)q=0;
rep(0,4,i)
{
ll a=n,b=5*m;
ll c=((5*q-p-i)%b+b)%b;
ll gcd=exgcd(a,b);
if(c%gcd)continue;
ll mod=b/gcd;
xx=(xx%mod+mod)%mod;
xx=xx*c/gcd;
ll now=xx*n+p;
if(!ans)ans=now;
else ans=min(ans,now);
}
if(ans)putl(ans);
else puts("Orz mgh!!!");
}
return 0;
}
luogu P3409 值日班长值周班长 exgcd的更多相关文章
- [noip模拟]难缠的值周生<宽搜>
难缠的值周生 [问题描述] 小 P 上学总是迟到,迟到了以后常常会被值周生发现.被值周生发现就会给他所在的班级扣分,被扣了分不免要挨班主任的训,这令小 P 很不爽.不过,聪明的他经过观察发现,值周生通 ...
- Luogu P1351 联合权值 题解
这是一个不错的树形结构的题,由于本蒟蒻不会推什么神奇的公式其实是懒得推...,所以很愉快的发现其实只需要两个点之间的关系为祖父和儿子.或者是兄弟即可. 然后问题就变得很简单了,只需要做一个正常的DFS ...
- 【luogu P1351 联合权值】 题解
题目链接:https://www.luogu.org/problemnew/show/P1351 做了些提高组的题,不得不说虽然NOIP考察的知识点虽然基本上都学过,但是做起题来还是需要动脑子的. 题 ...
- luogu P1310 表达式的值
题目描述 对于1 位二进制变量定义两种运算: 运算的优先级是: 先计算括号内的,再计算括号外的. “× ”运算优先于“⊕”运算,即计算表达式时,先计算× 运算,再计算⊕运算.例如:计算表达式A⊕B × ...
- luogu P1351 联合权值
题目描述 无向连通图G 有n 个点,n - 1 条边.点从1 到n 依次编号,编号为 i 的点的权值为W i ,每条边的长度均为1 .图上两点( u , v ) 的距离定义为u 点到v 点的最短距离. ...
- luogu 1351 联合权值
联合权值 题目大意 给你一个图,有\(n-1\)条边,距离均为\(1\),每距离为\(2\)的两个点的联合权值为\(W_u \times W_v\),求联合权值的最大值和联合权值总和. solutio ...
- [NOIp2014] luogu P1351 联合权值
哎我博 4 了. 题目描述 无向连通图 GGG 有 nnn 个点,n−1n−1n−1 条边.点从 111 到 nnn 依次编号,编号为 iii 的点的权值为 WiW_iWi,每条边的长度均为 111 ...
- Luogu P4234 最小差值生成树
题意 给定一个 \(n\) 个点 \(m\) 条边的有权无向图,求出原图的一棵生成树使得该树上最大边权与最小边权的差值最小. \(\texttt{Data Range:}1\leq n\leq 5\t ...
- Luogu 4234 最小差值生成树 - LCT 维护链信息
Solution 将边从小到大排序, 添新边$(u, v)$时 若$u,v$不连通则直接添, 若连通则 把链上最小的边去掉 再添边. 若已经加入了 $N - 1$条边则更新答案. Code #incl ...
随机推荐
- 「疫期集训day4」硝烟
那真是一阵恐怖的炮击(that boomed booms),响亮的炮音(that noise),滚滚的硝烟(that smoke),熊熊的火焰在围绕着我们前进...小心前进(go and be car ...
- Numerical Sequence(hard version),两次二分
题目: 题意: 已知一个序列: 112123123412345123456123456712345678123456789123456789101234567891011... 求这个序列第k个数是多 ...
- Python爬虫教程(16行代码爬百度)
最近在学习python,不过有一个正则表达式一直搞不懂,自己直接使用最笨的方法写出了一个百度爬虫,只有短短16行代码.首先安装必背包: pip3 install bs4 pip3 install re ...
- [JAVA]多线程之实现Callable接口
通过继承Callable方式实现的多线程可以获取线程执行后的返回值 示例代码如下: public class Counter implements Callable<Integer> { ...
- Scala 面向对象(九):特质(接口) 二
1 带有具体实现的特质 说明:和Java中的接口不太一样的是特质中的方法并不一定是抽象的,也可以有非抽象方法(即:实现了的方法). 2 带有特质的对象,动态混入 1)除了可以在类声明时继承特质以外,还 ...
- selenium.common.exceptions.WebDriverException:no such session
应该是browser对象关闭之后你又使用了
- How to install nginx in Ubuntu
The steps for installing the nginx on Ubuntu below. 1.install the packages first. apt-get install gc ...
- springmvc 重定向到外网地址
return new ModelAndView(new RedirectView("http://www.baidu.com"));
- Redis之对象
1.对象的类型与编码 Redis使用对象来表示数据库中的键和值,每次我们在Redis的数据库中新创建一个键值对,我们至少会创建两个对象,一个键对象,另一个值对象. 每个对象都由一个redisObjec ...
- Qt_IO系统_二进制读写
目录 Qt中的读写 QDataStream QDataStream Qt 是如何存储数据的 如何保证读取数据的正确性? --> 魔术数字,文件版本,Qt版本 魔术数字 文件版本 Qt 版本 读取 ...