联赛膜你测试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, ...
随机推荐
- 回收Windows 10恢复分区之后的磁盘空间
我电脑上安装了Windows 10和Linux双系统,现在将Linux删除之后,准备将其磁盘空间并入到Windows 10的C盘中,但是发现C盘跟Linux空间之间还隔了一个Windows的恢复分区, ...
- weblogic从ssrf到redis获取shell
一.环境搭建和知识储备 1.1.影响版本 漏洞编号:CVE-2014-4210 weblogic 10.0.2.0 weblogic 10.3.6.0 1.2.Docker搭建环境 1.进入vulhu ...
- clion结合vcpkg以及GTest的使用
目录 一.vcpkg简介.下载和使用 1. vcpkg是什么 2. vcpkg下载 3. 使用vcpkg下载第三方库 二.clion结合vcpkg 1. 方法一:使用环境变量 2. 方法二:添加cma ...
- cmd中输出换行和转义字符
cmd 中输出换行和转义字符 今天想写一个安装 Windows 任务的 bat 脚本,在命令行界面输出换行和转义一些字符,居然搜索了好久才搜到正确操作,因此记录一下. 在命令行界面输出换行 echo. ...
- Django学习day07随堂笔记
今日考题 """ 今日考题 1.必知必会N条都有哪些,每个都是干啥使的 2.简述神奇的双下划线查询都有哪些方法,作用是什么 3.针对多对多外键字段的增删改查方法有哪些,各 ...
- rationrose安装步骤
Rational Rose是Rational公司出品的一种面向对象的统一建模语言的可视化建模工具.用于可视化建模和公司级水平软件应用的组件构造. 就像一个戏剧导演设计一个剧本一样,一个软件设计师使用R ...
- JMeter脚本开发
什么是jmeter脚本 用户操作系统的动作流程 用户操作系统的请求 类似演戏的剧本 怎么快速开发漂亮的jmeter脚本 准确 快速 漂亮,脚本逻辑清晰,维护性高 脚本开发方案 代理 http代理服务器 ...
- fiddler抓包工具 https抓取 ios手机端抓取
fiddler抓包工具 https抓取 ios手机端抓取 转载链接:https://www.cnblogs.com/bais/p/9118297.html 抓取pc端https请求,ios手机端 ...
- english note [6.3to6.9]
6.3 http://www.51voa.com/VOA_Special_English/pakistan-town-struggles-with-rise-in-hiv-infections-821 ...
- Flask SSTI利用方式的探索
Flask SSTI利用方式的探索 一.SSTI简介&环境搭建 一个统一风格的站点,其大多数页面样式都是一致的,只是每个页面显示的内容各不相同.要是所有的逻辑都放在前端进行,无疑会影响响应 ...