2019牛客国庆集训派对day7 A 2016
链接:https://ac.nowcoder.com/acm/problem/52800
来源:牛客网
空间限制:C/C++ 32768K,其他语言65536K
Special Judge, 64bit IO Format: %lld
题目描述
1. 1≤a≤n,1≤b≤m
2. a×b 是 2016 的倍数。
输入描述:
输入包含不超过 30 组数据。
每组数据包含两个整数 n, m (1≤n,m≤109).
输出描述:
对于每组数据,输出一个整数表示满足条件的数量。
输入
32 63
输出
1
输入
2016 2016
输出
30576
输入
1000000000 1000000000
输出
7523146895502644
思路:
a*b%mod ==0 -> (a%mod)*(b%mod)%mod ==0
所以 求a*b=k*2016即(a*2016+a1)(b*2016+b1)=k*2016 ->a*b*2016^2+(a+b)*2016+a1*b1 = k*2016;
那么a*b要是2016的倍数的话,就要满足a1*b1是2016的倍数
1<=a1<=2015,1<=b1<=2015;
这里有两种做法
方法一:
正向思维:就是直接求ans; 代码:
#include<iostream>
#include<math.h>
using namespace std;
typedef long long ll;
int main(){
ll i,j,ans,a,b,n,m;//i,j其实是余数
while(cin>>n>>m){
ans=;
for(i=;i<=min((ll),n);i++){//这里是2016,因为是直接求ans的,所以要到边界2016,相当于正好是倍数关系,这里是1-2016,而不能是0-2015
for(j=;j<=min((ll),m);j++){
if(i*j%==){
a=(n-i)/+;//加一就是包括自己,比如说4033=(2*2016+1),中a=3,就是包括了1,2017,4033这三个数
b=(m-j)/+;
ans+=a*b;
}
}
}
cout<<ans<<endl;
}
return ;
}
这题其实是有点暴力的,就是把余数i从1一直到2016全部遍历一遍,然后j也是,把i*J==2016的全算进去,不过是聪明的暴力
方法二:
逆向思维:n*m-Ans =ans;
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
typedef long long ll;
int main(){
int n,m;
while(cin >> n >> m){
long long ans = (ll)n * m;
for(int i = ; i <= min(,n); i++){//这道题是逆向思维,i这里是2015,因为是做减法,就是说把i*j!=2016的减去,i%2016的余数是从1-2015,所以这里是2015
for(int j = ; j <= min(,m); j++){
if(i * j % != )
ans -= (ll)((n - i) / + ) * ((ll)(m - j) / + );
}
}
cout << ans <<endl;
}
return ;
}
2019牛客国庆集训派对day7 A 2016的更多相关文章
- 计算几何板子题【2019牛客国庆集训派对day7——三角形和矩形】【多边形相交的面积】
链接:https://ac.nowcoder.com/acm/contest/1112/J来源:牛客网 题目描述 Bobo 有一个三角形和一个矩形,他想求他们交的面积. 具体地,三角形和矩形由 8 个 ...
- 2019牛客国庆集训派对day5
2019牛客国庆集训派对day5 I.Strange Prime 题意 \(P=1e10+19\),求\(\sum x[i] mod P = 0\)的方案数,其中\(0 \leq x[i] < ...
- 2019 牛客国庆集训派对day1-C Distinct Substrings(exkmp+概率)
链接:https://ac.nowcoder.com/acm/contest/1099/C来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65536 ...
- 2019牛客国庆集训派对day1(A, B E F K)
链接:https://ac.nowcoder.com/acm/contest/1099#question A:可知符合条件的图中间肯定存在一个由1构成的矩形,找到由1构成矩形的边界,判断出现的1的数量 ...
- 牛客国庆集训派对Day7 Solution
A Relic Discovery 水. #include <bits/stdc++.h> using namespace std; int t, n; int main() { s ...
- 2019牛客国庆集训派对day3 买一送一
题目链接: 题意:有n个点,n-1条单向边,每个点都销售一类商品 问从点1开始走,买第一样商品类型为x,买第二样商品类型为y,问不同有序对<x,y>的数量 解法: col[i]表示这个点的 ...
- 2019牛客国庆集训派对day1 K题 双向链表练习题 splay区间翻转
题目链接: 解法: 先建n颗平衡树,合并的时候将a中最右的结点翻转到根节点,b中最左的结点翻转到根节点,对合并后的根节点进行标记. #include <bits/stdc++.h> usi ...
- 2019牛客国庆集训派对day1
C 存每个值存在的位置,枚举末尾的值,再枚举前面的值,哈希二分出最长相同的,即剩下的为不同的 D \(f_{i,j,k}\)为前i位,最后一个3因子在j,次因子在k G bitset处理有多少位置符合 ...
- 2019牛客国庆集训派对day3
E. Grid 大意: 给定$n\cdot m$个点的图, 初始无边, $q$个操作, $(1,a,b)$表示第$a$列到第$b$列全连起来, $(2,a,b)$表示把第$a$行到第$b$行全连起来, ...
随机推荐
- Java转型大数据开发全套教程,都在这儿!
众所周知,很多语言技术已经在长久的历史发展中掩埋,这期间不同的程序员也走出的自己的发展道路. 有的去了解新的发展趋势的语言,了解新的技术,利用自己原先的思维顺利改变自己的title. 比如我自己,也都 ...
- Oracle备份统计信息
Oracle可以通过DBMS_STATS.GET_TABLE_STATS 收集表的统计信息,一般的收集方法如下: DBMS_STATS.GATHER_TABLE_STATS(OWNNAME => ...
- vCenter 6.0 如何用client登录
使用Vmware client 输入vCenter的IP地址 然后用户名使用administrator@vsphere.local 再输入密码,即可登录vCenter了. web端也是一样,但是我遇 ...
- show line numbers
- AtCoder Beginner Contest 127 D,E,F
D Integer Cards 题意:先给出n个数字,然后可以有m次操作,每次操作以数字对(x,y)表示最多能选x个数字把它变成y,问经历m次操作后n个数字和最大为多少? 解法:一个明显正确的做法是: ...
- windows API 第22篇 WTSGetActiveConsoleSessionId
函数原型:DWORD WTSGetActiveConsoleSessionId (VOID)先看一下原文介绍: The WTSGetActiveConsoleSessionId function re ...
- Android AppCompatActivity去掉actionbar fullScreen
网上已经有很多关于这个问题的解决方案,如果你试了都没有解决,那么请往下看.首先说下网上说的解决方案: 方案一:在AndroidManifest.xml中,为需要进行全屏显示的activity添加如下主 ...
- 【JZOJ6433】【luoguP5664】【CSP-S2019】Emiya 家今天的饭
description analysis 首先可以知道不符合要求的食材仅有一个,于是可以容斥拿总方案数减去选不合法食材的不合法方案数 枚举选取哪一个不合法食材,设\(f[i][j]\)表示到第\(i\ ...
- 数组对象用map修改键名
用vue组件需要使用的数据格式和后台返回的不一样 console.log(res); this.optionsEp = res.map(item => { return { value: ite ...
- IO流分类
IO流在java中从输入和输出角度分类: 1.输入流 2.输出流 IO流在java中从数据的角度来分类: 1.字符流:文本,我们能读懂的都可以认为是字符流,如:文章,java文件等 字符输入流的超类: ...