description

solution

我们可以发现一个性质

ans=n+m+∑n−1i=1∑j=1m−1([(i,j)==1](n−i)(m−j)−[(i,j)==2](n−i)(m−j))ans=n+m+\sum_{i=1}^{n-1}\sum{j=1}^{m-1}([(i,j)==1](n-i)(m-j)-[(i,j)==2](n-i)(m-j))

考虑两条重合的直线(以两个端点确定一条直线的线段)会被这两条直线(以两个端点确定一条直线的线段的并)所减去,知道这个性质之后直接莫比乌斯反演就可以了。

code

#include<set>
#include<cstdio>
#include<cmath>
#include<cstring>
#include<algorithm>
#define LL long long
#define fo(i,j,k) for(int i=j;i<=k;i++)
#define fd(i,j,k) for(int i=j;i>=k;i--)
#define fr(i,j) for(int i=begin[j];i;i=next[i])
using namespace std;
int const mn=4000+9,mo=1<<30;
int t,n,m,ss[mn],tag[mn],mu[mn];
int main(){freopen("d.in","r",stdin);freopen("d.out","w",stdout);scanf("%d",&t);int lim=4000;mu[1]=1;fo(i,2,lim){if(!tag[i])ss[++ss[0]]=i,mu[i]=-1;fo(j,1,ss[0]){if(i*ss[j]>lim)break;tag[i*ss[j]]=1;mu[i*ss[j]]=-mu[i];if(i%ss[j]==0){mu[i*ss[j]]=0;break;}}}fo(cas,1,t){scanf("%d%d",&n,&m);if(n<m)swap(n,m);LL ans=0;fo(i,1,n-1){LL nn=(n-1)/i,mm=(m-1)/i;ans=(ans+mu[i]*(nn*mm*n*m-m*i*mm*(1+nn)*nn/2-n*i*nn*(1+mm)*mm/2+i*i*(1+nn)*nn/2*(1+mm)*mm/2)-mu[i]*((nn/2)*(mm/2)*n*m-m*i*2*(mm/2)*(1+(nn/2))*(nn/2)/2-n*i*2*(nn/2)*(1+(mm/2))*(mm/2)/2+i*i*4*(1+(nn/2))*(nn/2)/2*(1+(mm/2))*(mm/2)/2))%mo;}printf("%lld\n",((ans*2+n+m)%mo+mo)%mo);}return 0;
}

【jzoj5337】【NOIP2017提高A组模拟8.25】【夜莺与玫瑰】【莫比乌斯反演】相关推荐

  1. 【NOIP2017提高A组模拟8.25】夜莺与玫瑰

    Description: 1<=T<=10000,1<=n<=4000 题解: 好久没有比赛时切这么恶心的数论题了. 显然的想法是枚举直线的斜率,再把这条直线塞到矩形里,平行于 ...

  2. JZOJ 5372. 【NOIP2017提高A组模拟9.17】猫

    Description 信息组最近猫成灾了!隔壁物理组也拿猫没办法.信息组组长只好去请神刀手来帮他们消灭猫.信息组现在共有n 只猫(n 为正整数),编号为1 到n,站成了一个环,第i 只猫的左边是第i ...

  3. JZOJ 5421. 【NOIP2017提高A组集训10.25】嘟嘟噜

    Description 由于众所周知的原因, 冈部一直欠真由理一串香蕉. 为了封上真由理的嘴, 冈部承诺只要真由理回答出这个问题, 就给她买一车的香蕉: 一开始有n 个人围成一个圈, 从1 开始顺时针 ...

  4. JZOJ 5392. 【NOIP2017提高A组模拟10.5】Lucky Transformation

    Description Input Output Sample Input 7 2 2343223 4 1 2234 Sample Output 2243233 2334 Data Constrain ...

  5. JZOJ 5371. 【NOIP2017提高A组模拟9.17】组合数问题

    Description 定义"组合数"S(n,m)代表将n 个不同的元素拆分成m 个非空集合的方案数.举个例子,将{1,2,3}拆分成2 个集合有({1},{2,3}),({2},{1,3}),({3 ...

  6. JZOJ 100047. 【NOIP2017提高A组模拟7.14】基因变异

    Description 21 世纪是生物学的世纪,以遗传与进化为代表的现代生物理论越来越多的 进入了我们的视野. 如同大家所熟知的,基因是遗传因子,它记录了生命的基本构造和性能. 因此生物进化与基因的 ...

  7. JZOJ 100041. 【NOIP2017提高A组模拟7.12】列车调度

    Description Input Output Sample Input Sample1: 3 1 2 3 Sample2: 9 1 3 2 4 8 6 9 5 7 Sample Output Sa ...

  8. JZOJ 100030. 【NOIP2017提高A组模拟7.8】为了爱情

    Description Input 输入文件第一行包含一个正整数 k.之后是 k 组测试用例. 每组测试用例的第一行为一个整数 n.接下来 n 行,每行 n 个以空格隔开的数,用来 描述棋盘的初始状态 ...

  9. JZOJ 100026. 【NOIP2017提高A组模拟7.7】图

    Description 有一个n个点n条边的有向图,每条边为< i,f(i),w(i)>,意思是i指向f(i)的边权为w(i)的边,现在小A想知道,对于每个点的si和mi. si:由i出发 ...

最新文章

  1. 封装一个计时器,记录页面的停留时间
  2. 深圳大学计算机暑期学校,The First Day-深度学习暑期学校
  3. My interested stuff(2008-07-10)
  4. 在SAE搭建Python+Django+MySQL(基于Windows)
  5. 干货分享:插画家Anmi的创作技巧与练习方法
  6. Build: 0 succeeded or up-to-date, 0 failed, 1 skipped
  7. 小问题,对递归重复调用的改进,一起来分享
  8. vue-resource安装
  9. vue数组刷新_Vue中数组更新后,页面没有动态刷新问题
  10. php数组去交集,PHP获得数组交集与差集的方法
  11. python中if for 作用域问题
  12. php 获取内容页图片,织梦CMS如何从列表页获取内容页的图片
  13. libusb获取usb设备的idVendor(vid),idProduct(pid),以及Serial Number
  14. docker php7 mysql分开,Docker nginx+php74+mysql57, 并安装gd和mysql扩展
  15. mysql文章列表_MySQL-分享文章列表 - Su的博客
  16. CSDN免登录复制方式
  17. windows 2012 nps认证cisco、h3c(comware5)交换机radius认证
  18. php函数改变图片大小,php实现修改图片大小的方法
  19. 企业内部知识共享平台的搭建和应用
  20. 2022年度编程语言排行榜来啦,它凭什么能超过C语言,排名第一?

热门文章

  1. Python基础——字符串的使用
  2. iphone计算机快捷键,PC 上的 iTunes 键盘快捷键
  3. dockers安装的整体步骤
  4. 浅谈后脚跟步入社会初体验
  5. Linux的su命令
  6. 携职教育:软考哪个科目更容易过?70%考生都选这几个科目
  7. css实现各种各样的三角形
  8. (Spring Cloud面试题)spring cloud断路器的作用是什么?
  9. 程序人生 | (7) “新一五计划”(博客导航)
  10. mysql 网络远程登录_mysql实现远程登录