csu 1803 16年湖南省赛

2024-02-13 17:08
文章标签 16 1803 湖南省 csu

本文主要是介绍csu 1803 16年湖南省赛,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1803: 2016

Time Limit: 5 Sec   Memory Limit: 128 MB
Submit: 628   Solved: 413
[ Submit][ Status][ Web Board]

Description

给出正整数 n 和 m,统计满足以下条件的正整数对 (a,b) 的数量:
1. 1≤a≤n,1≤b≤m;
2. a×b 是 2016 的倍数。

Input

输入包含不超过 30 组数据。
每组数据包含两个整数 n,m (1≤n,m≤10 9).

Output

对于每组数据,输出一个整数表示满足条件的数量。

Sample Input

32 63
2016 2016
1000000000 1000000000

Sample Output

1
30576
7523146895502644



题意:

求a*b%2016==0的(a,b)数对的个数

题解:

同余求模定理:

同余定理具有可加、可减、可乘、乘方性:  

(A + B) % C = (A % C + B % C) % C;

(A - B) % C = (A % C - B % C) % C;

(A * B) % C = (A % C * B % C) % C;

(A ^ B) % C = (A^N + B^N) % C;


由上面知道

(A * B) % C = (A % C * B % C) % C;

若满足题意,则有三种情况:

第一种  :A%2016==0

第二种  :B%2016==0

第三种  :A%2016==0&&B%2016==0

三种情况肯定不好求

那就反过来求当(A * B) % C != 0的时候

得到   a = A%2016!=0

和       b = B%2016!=0

且  (a*b)%2016!=0

然后就很好求了,统计两个区间【1,2016】,【1,2016】中数字出现的次数(每个数字经过模2016后)

即【1,a】中每个数字模2016后,统计【1,2016】中数字出现的次数

最后再计算(a*b)%2016!=0 的时候,a,b出现的次数相乘就好了



#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;#define mem(a) memset(a,0,sizeof(a))
#define LL long long
#define mod 2016
LL arr1[2020],arr2[2020];int main()
{LL a,b;LL ans=0;//freopen("in.txt","r",stdin);while(scanf("%lld%lld",&a,&b)!=EOF){mem(arr1),mem(arr2);ans=a*b;LL temp1=a%mod,num1=a/mod;LL temp2=b%mod,num2=b/mod;for(int i=1;i<=2016;i++){arr1[i]=num1;arr2[i]=num2;}for(int i=1;i<=temp1;i++)arr1[i]++;for(int i=1;i<=temp2;i++)arr2[i]++;for(int i=1;i<=mod;i++)for(int j=1;j<=mod;j++)if(i*j%mod)ans-=arr1[i]*arr2[j];printf("%lld\n",ans);}return 0;
}



精简代码

#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;#define  LL long longint main()
{int n,m;//freopen("in.txt","r",stdin);while(scanf("%d%d",&n,&m)!=EOF){LL ans=(LL)n*m;for(int i=1;i<=min(2016,n);i++)for(int j=1;j<=min(2016,m);j++)if(i*j%2016!=0)ans-=(LL)((n-i)/2016+1)*((LL)(m-j)/2016+1);printf("%lld\n",ans);}return 0;
}



这篇关于csu 1803 16年湖南省赛的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/706103

相关文章

csu(背包的变形题)

题目链接 这是一道背包的变形题目。好题呀 题意:给n个怪物,m个人,每个人的魔法消耗和魔法伤害不同,求打死所有怪物所需的魔法 #include<iostream>#include<algorithm>#include<cstring>#include<stack>#include<queue>#include<set>//#include<u>#include<map

csu 1446 Problem J Modified LCS (扩展欧几里得算法的简单应用)

这是一道扩展欧几里得算法的简单应用题,这题是在湖南多校训练赛中队友ac的一道题,在比赛之后请教了队友,然后自己把它a掉 这也是自己独自做扩展欧几里得算法的题目 题意:把题意转变下就变成了:求d1*x - d2*y = f2 - f1的解,很明显用exgcd来解 下面介绍一下exgcd的一些知识点:求ax + by = c的解 一、首先求ax + by = gcd(a,b)的解 这个

【JavaScript】LeetCode:16-20

文章目录 16 无重复字符的最长字串17 找到字符串中所有字母异位词18 和为K的子数组19 滑动窗口最大值20 最小覆盖字串 16 无重复字符的最长字串 滑动窗口 + 哈希表这里用哈希集合Set()实现。左指针i,右指针j,从头遍历数组,若j指针指向的元素不在set中,则加入该元素,否则更新结果res,删除集合中i指针指向的元素,进入下一轮循环。 /*** @param

16 子组件和父组件之间传值

划重点 子组件 / 父组件 定义组件中:props 的使用组件中:data 的使用(有 return 返回值) ; 区别:Vue中的data (没有返回值);组件方法中 emit 的使用:emit:英文原意是:触发、发射 的意思components :直接在Vue的方法中声明和绑定要使用的组件 小炒肉:温馨可口 <!DOCTYPE html><html lang="en"><head><

react笔记 8-16 JSX语法 定义数据 数据绑定

1、jsx语法 和vue一样  只能有一个根标签 一行代码写法 return <div>hello world</div> 多行代码返回必须加括号 return (<div><div>hello world</div><div>aaaaaaa</div></div>) 2、定义数据 数据绑定 constructor(){super()this.state={na

打靶记录16——Momentum

靶机: https://download.vulnhub.com/momentum/Momentum.ova 下载后使用 VirtualBox 打开 难度:中 目标:取得 root 权限 + 2 Flag 攻击方法: 主机发现端口扫描信息收集Web 路径爆破XSS 漏洞JS 脚本分析AES 解密Redis 认证漏洞 主机发现 sudo arp-scan -l 端口扫描和服务发

NYOJ 16 矩形嵌套

OJ题目 : http://acm.nyist.net/JudgeOnline/problem.php?pid=16 描述 有n个矩形,每个矩形可以用a,b来描述,表示长和宽。矩形X(a,b)可以嵌套在矩形Y(c,d)中当且仅当a<c,b<d或者b<c,a<d(相当于旋转X90度)。例如(1,5)可以嵌套在(6,2)内,但不能嵌套在(3,4)中。你的任务是选出尽可能多的矩形排成一行,使得除

【硬刚ES】ES高级(16) 使用基础(4)安装(4) Linux 单机

本文是对《【硬刚大数据之学习路线篇】从零到大数据专家的学习指南(全面升级版)》的ES部分补充。 1 软件下载 软件下载地址:https://www.elastic.co/cn/downloads/past-releases/elasticsearch-7-8-0 2 软件安装 1) 解压软件 将下载的软件解压缩 # 解压缩tar -zxvf elasticsearch-7.8

LeetCode 16 3Sum Closest

题意: 给出数组s和目标target,要求从中选出3个数字,使其相加的和最接近target。 思路: x sum系列的题目,在这里做一个总结。 最经典的情况为2 sum问题,即给出s和target找出s[i] + s[j] = target。 可以使用枚举s[i]判断target - s[i]是否在s中出现且与s[i]不同的O(nlogn)方法,用map或排序后二分查找的方式均可。

iPhone 16或将不支持微信?谣言还是事实?

iPhone 16或将不支持微信?谣言还是事实? 近日,一则关于“iPhone 16可能不支持微信” 的传言如同一颗重磅炸弹,引爆了社交媒体,特别是在微博上,相关话题迅速占据热搜榜单,引发了无数网友的热议和担忧。然而,事实究竟如何?这背后又隐藏着哪些不为人知的博弈?今天,猫头虎技术团队就带大家一探究竟。 猫头虎是谁? 大家好,我是 猫头虎,别名猫头虎博主,擅长的技术领域包括云原生、前端、