luoguP4132 [BJOI2012]算不出的等式 数论

Posted yuyanjiab

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了luoguP4132 [BJOI2012]算不出的等式 数论相关的知识,希望对你有一定的参考价值。

传送门

以前的题

当时集训的时候老师连着笑话一起讲的

这题自己先找规律打表就猜是(p-1)*(q-1)/4

没有∑套∑ 先把式子分成两个(其实是一样的)

然后考虑这个式子求和前的每一项 

对于每一个k求的都是y=q/p*x下的整点数

然后另一边就是互补的一侧

(该式两部分分别是一个([p/2],[q/2])方格图主对角线分成的两部分的整点数.)[]表示下取整

技术分享图片

图大概长这样

由于p,q是质数 所以只有相等的时候会有p个点会少算(边界)

Code:

技术分享图片
 1 #include<cstdio>
 2 #include<cstring>
 3 #include<algorithm>
 4 #include<queue>
 5 #define ms(a,b) memset(a,b,sizeof a)
 6 #define rep(i,a,n) for(int i = a;i <= n;i++)
 7 #define per(i,n,a) for(int i = n;i >= a;i--)
 8 #define inf 1000000007
 9 using namespace std;
10 typedef long long ll;
11 typedef double D;
12 #define eps 1e-8
13 ll read() {
14     ll as = 0,fu = 1;
15     char c = getchar();
16     while(c < 0 || c > 9) {
17         if(c == -) fu = -1;
18         c = getchar();
19     }
20     while(c >= 0 && c <= 9) {
21         as = as * 10 + c - 0;
22         c = getchar();
23     }
24     return as * fu;
25 }
26 //head
27 ll p,q,ans;
28 int main() {
29     p = read(),q = read();
30     ans = (p>>1)*(q>>1);
31     if(p == q) ans += p>>1;
32     printf("%lld
",ans);
33     return 0;
34 }
View Code

 

以上是关于luoguP4132 [BJOI2012]算不出的等式 数论的主要内容,如果未能解决你的问题,请参考以下文章

2659: [Beijing wc2012]算不出的算式

BZOJO2659: [Beijing wc2012]算不出的算式

[Beijing wc2012]算不出的算式

bzoj2659[Beijing wc2012]算不出的算式 数论

LuoguP4219 [BJOI2014]大融合(LCT)

LuoguP5322 [BJOI2019]排兵布阵(DP)