联赛膜你测试20 T1 Simple 题解 && NOIP2017 小凯的疑惑 题解(赛瓦维斯特定理)
前言:
数学题,对于我这种菜B还是需要多磨啊
Simple
首先它问不是好数的数量,可以转化为用总数量减去是好数的数量。
求“好数”的数量:
由裴蜀定理得,如果某个数\(i\)不能整除\(gcd(n,m)\),那么一定不是好数。
所以,我们把\(n,m,q\)分别除以\(gcd(n,m)\),是不影响得出的“好数”数量的。
好,那么现在\(n,m\)就互质了。
现在,就把问题转化为了(用比较形象化的语言来说,就是)有\(n,m\)互质,求\([1,q]\)中有多少个数能被若干个\(n,m\)相加之后拼起来。
这个东西简单枚举两维的话,复杂度显然无法接受。我们可以考虑只枚举一维。
设\(n\)的系数是\(x\),\(m\)的系数是\(y\),且\(n\)小于\(m\)。
即\(n*x+m*y=c\);
那么就可以枚举\(y\),求\(x\)的数量即可。
边界问题很重要。
我们考虑y的边界,因为要算\((c-m*y)/n\),所以\(m*y<=c\);
然后会发现一个问题,如下图。

上面的长线段代表某个能被拼成的数,我们可以发现,如果枚举\(m\)的个数等于\(4\)时,这个数会被计算到。枚举\(m\)的个数等于\(0\),即\(n\)的个数等于\(5\)时,这个数又会被计算到,就会算重。
那么怎么去重呢?
我们会发现,因为\(n,m\)互质,上面的情况发生且只会发生在枚举的\(y\)大于等于\(n\)时才会出现。
所以就有了y的第二个边界,\(y<n\);
代码如下:
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
ll n,m,q;
ll gcd(ll x,ll y){
return y==0 ? x : gcd(y,x%y) ;
}
void Solve(){
int T;scanf("%d",&T);
while(T--){
scanf("%lld%lld%lld",&n,&m,&q);
ll ans=q;
if(n>m) swap(n,m);
ll ss=gcd(n,m);
n/=ss;
m/=ss;
q/=ss;
for(register int i=0;i*m<=q&&i<n;++i) ans-=(q-1ll*i*m)/n+1;
printf("%lld\n",ans+1);//ans+1的原因?
}
}
int main(){
freopen("simple.in","r",stdin);
freopen("simple.out","w",stdout);
Solve();
return 0;
}
这里还要注意一个点,最后\(ans\)要加一,原因是\(x=0,y=0\)的情况,这是不在\([1,q]\)区间中的,相当于多减去一个,然后就要加回来。
2.luogu P3951 小凯的疑惑 / [蓝桥杯2013省]买不到的数目
这个题放在D1T1是来恶心人的吗。。。找到规律就秒切,找不到规律就心态炸裂?
希望今年别出这种题。
据某工具人学长 所言,这玩意叫赛瓦维斯特定理。
emmm。。。动动的证明看懂了一部分
后来又看了这个链接疑似挂掉的博客
发现竟然折磨简单。
然后。。。我自己写的证明就先咕了吧
联赛膜你测试20 T1 Simple 题解 && NOIP2017 小凯的疑惑 题解(赛瓦维斯特定理)的更多相关文章
- 题解 P3951 小凯的疑惑
P3951 小凯的疑惑 数论极菜的小萌新我刚看这题时看不懂exgcd做法的题解,后来在网上找到了一篇博客,感觉代码和推导都更加清新易懂,于是在它的基础上写了题解qwq 分析 两数互质,且有无限个,想到 ...
- 题解【洛谷P3951】[NOIP2017]小凯的疑惑
题目描述 小凯手中有两种面值的金币,两种面值均为正整数且彼此互素.每种金币小凯都有 无数个.在不找零的情况下,仅凭这两种金币,有些物品他是无法准确支付的.现在小 凯想知道在无法准确支付的物品中,最贵的 ...
- [CSP-S模拟测试]:小奇挖矿2(DP+赛瓦维斯特定理)
题目背景 小奇飞船的钻头开启了无限耐久+精准采集模式!这次它要将原矿运到泛光之源的矿石交易市场,以便为飞船升级无限非概率引擎. 题目描述 现在有$m+1$个星球,从左到右标号为$0$到$n$,小奇最初 ...
- 2021.07.20 P3951 小凯的疑惑(最大公因数,未证)
2021.07.20 P3951 小凯的疑惑(最大公因数,未证) 重点: 1.最大公因数 题意: 求ax+by最大的表示不了的数(a,b给定 x,y非负). 分析: 不会.--2021.07.20 代 ...
- 【NOIP2017 D1 T1 小凯的疑惑】
题目描述 小凯手中有两种面值的金币,两种面值均为正整数且彼此互素.每种金币小凯都有 无数个.在不找零的情况下,仅凭这两种金币,有些物品他是无法准确支付的.现在小 凯想知道在无法准确支付的物品中,最贵的 ...
- [暴力题解&&考试反思] 双十一欢乐赛(联赛膜你测试32)
前言: 今天考试很迷糊.从7点考到11点半,我大概从7点睡到9点.隐隐约约看到旁边的狗哥敲了好几个题,我才开始写代码.然后因为还是很困,而且T1迷迷糊糊调了好长时间,T3T4的暴力就懒的写了... 估 ...
- 题解P3951【小凯的疑惑】
相信参加OI的oiers都是数学高手吧 我好像不是 (滑稽 那应该大家都接触过邮资问题吧! 所谓邮资问题,就类似于这一题,给定a和b两种邮资数,求最大的不能凑出的邮资 数.这里给出公式:最大的不能集出 ...
- NOIP2017 Day1 T1 小凯的疑惑
题目描述 小凯手中有两种面值的金币,两种面值均为正整数且彼此互素.每种金币小凯都有 无数个.在不找零的情况下,仅凭这两种金币,有些物品他是无法准确支付的.现在小凯想知道在无法准确支付的物品中,最贵的价 ...
- 7.20试机测 T3 阶乘之和 暴力AC题解
7.20试机测 T3 阶乘之和 暴力AC题解 题外话:此乃本蒟蒻发表的第一篇题解,大家多多关照,支持一下,谢谢 题面 3.阶乘之和(sum.pas/in/out) 问题描述: 给定一个非负整数 n, ...
随机推荐
- v-for列表渲染之数组变动检测
1.简单举一个v-for列表渲染例子 <template> <div> <ul> <li v-for="item in items"> ...
- 分布式必备理论基础:CAP和BASE
大家好,我是老三,今天是没有刷题的一天,心情愉悦,给大家分享两个简单的知识点:分布式理论中的CAP和BASE. CAP理论 什么是CAP CAP原则又称CAP定理,指的是在一个分布式系统中,Consi ...
- 羽夏看Win系统内核——简述
写在前面 此系列是本人一个字一个字码出来的,包括示例和实验截图.由于系统内核的复杂性,故可能有错误或者不全面的地方,如有错误,欢迎批评指正,本教程将会长期更新. 如有好的建议,欢迎反馈.码字不易, ...
- 在 vue-cli 项目中 使用elementUI 的“自定义主题”功能
1.安装elementUI $ npm i element-ui -S 2.安装主题工具 npm i element-theme -g 3.安装chalk主题 npm 安装 npm i element ...
- CodeForce-702C Cellular Network(查找)
Cellular Network CodeForces - 702C 给定 n (城市数量) 和 m (灯塔数量): 给定 a1~an 城市坐标: 给定 b1~bm 灯塔坐标: 求出灯塔照亮的最小半径 ...
- 成本降低40%、资源利用率提高20%的 AI 应用产品云原生容器化之路
作者 郭云龙,腾讯云高级工程师,目前就职于 CSIG 云产品三部-AI 应用产品中心,现负责中心后台业务框架开发. 导语 为了满足 AI 能力在公有云 SaaS 场景下,服务和模型需要快速迭代交付的需 ...
- adobe media encoder cc 2018无法打开,报错0xc0000005
在我这里是因为显卡的原因 下载NVIDIA然后打开NVIDIA控制面板,在里面选择软件的显卡,挨个试就行, 还不行就在设备管理器中将多余的先禁用,试一试
- 『Python』matplotlib实现动画效果
一般而言,在绘制复杂动画时,主要借助模块animation来完成 import numpy as np import matplotlib.pyplot as plt import matplotli ...
- Selenium+Tesseract-OCR智能识别验证码爬取网页数据
1.项目需求描述 通过订单号获取某系统内订单的详细数据,不需要账号密码的登录验证,但有图片验证码的动态识别,将获取到的数据存到数据库. 2.整体思路 1.通过Selenium技术,无窗口模式打开浏览器 ...
- P1791-[国家集训队]人员雇佣【最大权闭合图】
正题 题目链接:https://www.luogu.com.cn/problem/P1791 题目大意 有\(n\)个人,雇佣第\(i\)个需要\(A_i\)的费用,对于\(E_{i,j}\)表示如果 ...