首页 > 其他分享 >CF1389E Calendar Ambiguity 题解

CF1389E Calendar Ambiguity 题解

时间:2023-02-09 20:34:26浏览次数:69  
标签:lim gcd int 题解 pmod ti CF1389E Calendar equiv

可能更好的阅读体验

题面传送门 to luogu

题目大意

假设一年有 \(m\) 月,每个月有 \(d\) 天,每周有 \(w\) 天。保证一年的第一天一定是周一。
求 \((x,y)\),满足 \(x<y\) 并且 \(x\) 月 \(y\) 日和 \(y\) 月 \(x\) 日是同一个星期。
\(1\le m,d,w\le 10^9\)

题目解析

这是我最近写的最短最简洁的 *2200。

由题意得

\[dx+y\equiv dy+x \pmod w \]

移项

\[(d-1)x\equiv(d-1)y\pmod w \]

我们设 \(\gcd(d-1,w)=t\),\(a=\dfrac{d-1}{t},p=\dfrac{w}{t}\)
那么

\[ax\equiv ay\pmod p \]

由于 \(\gcd(a,p)=1\),所以两边同是乘上 \(a\) 模 \(p\) 的逆元,所以就有

\[x\equiv y\pmod p \]

然后注意到 \(1\le x<y<\min\{m,d\}\),设 \(lim=\min\{m,d\}\)。
那么如果 \(0<x\bmod p\le lim\bmod p\),那么 \((x,y)\) 的取值就有 \(\lfloor \dfrac{lim}{p}\rfloor\times(\lfloor\dfrac{lim}{p}\rfloor+1)\) 种,否则则有 \(\lfloor \dfrac{lim}{p}\rfloor\times(\lfloor\dfrac{lim}{p}\rfloor-1)\) 种。

int m,d,w,g,p,lim,l,r,ti;
int gcd(int x,int y){ if(!x||!y) return x|y; return gcd(y,x%y); }
void work(){
	m=read(); d=read(); w=read();
	p=w/gcd(d-1,w); lim=mmin(m,d); l=lim%p; r=p-l; ti=lim/p;
	print(1ll*l*ti*(ti+1)/2+1ll*r*ti*(ti-1)/2),pc('\n');
}

标签:lim,gcd,int,题解,pmod,ti,CF1389E,Calendar,equiv
From: https://www.cnblogs.com/jiangtaizhe001/p/17106941.html

相关文章

  • 【题解】CF850F Rainbow Balls
    整体方向很常规,但是最后的处理比较仙,记一下。思路期望dp.首先意识到最终会变成同一种颜色,并且不同颜色的期望步数不同。考虑到\(n\leq2.5\times10^3\),考虑钦定最......
  • 【题解】CF1093G Multidimensional Queries
    记一下这种有趣的trick.思路线段树。绝对值按照惯例是可以拆的,并且可以拆出一正一负两个数。考虑到维数很小,可以考虑状压表示拆除绝对值之后每一维值的正负。并且因......
  • SAOI 题解汇总
    题解汇总A.Chery的魔法药水与lrc的韭菜所有部分分代码及标程均在这里。这个题目是我们前面的月考卷子改编后的idea,去年就出了,今年翻出来经过加强得到了这道入门题......
  • keepalived的状态不断切换的问题解决
    转载自:https://blog.csdn.net/weixin_43515220/article/details/104959814================= 笔者在搭建nginx+keepalived架构的过程中,发现存在keepalived的vip不断迁......
  • vue封装的组件发布到npm,超详细及问题解决
    1.创建一个新的vue项目vuecreatebase-page创建一个新的项目,npmrunserve之后删掉多余的代码2.将自己的组件代码移入项目中增加一个新的packages文件夹(组件文件......
  • 2020 第十一届蓝桥杯大赛软件赛省赛(第二场),C/C++大学B组题解
    第1题——门牌制作(5分)枚举1到2020,判断有多少个字符2。答案624#include<bits/stdc++.h>usingnamespacestd;intmain(){intcnt=0;for(inti=1;i<=2020;......
  • 2021 第十二届蓝桥杯大赛软件赛省赛(第二场),C/C++大学B组题解
    第1题——求余(5分)直接输出2021%20答案:1#include<bits/stdc++.h>usingnamespacestd;intmain(){cout<<2021%20;return0;}第2题——双阶乘(5分)求2021的双阶乘......
  • Font 'STSong-Light' with 'UniGB-UCS2-H' is not recognized. 问题解决方法
    先说结论,这是由于itext和asian版本不一直造成的。如果你的需求仅仅是生成pdf,则使用解决办法1,如果需求有导出word则使用解决办法2解决办法1:将pom文件的com.lowagie全部......
  • 题解 SP2666【Query on a tree IV】
    题目分析首先,对原树进行轻重链剖分,并对于每一条重链分别建一颗线段树(原因下文会提到)。令\(dfn\)为某个点的dfs序,\(rnk(i)\)为\(dfn\)为\(i\)的点的编号。我们......
  • Please wait ...... autocad 2018问题解决
    问题:程序运行中弹出如下窗口按照步骤安装又安装不了,一直失败原因:autocad软件没有彻底卸载干净解决方法:1、在电脑左下角,控制面板中,找到AUTOCAD,进行卸载,带有AUTODESK一般也会......