51nod 1352:集合计数

article/2025/10/1 18:03:59

1352 集合计数
基准时间限制:1 秒 空间限制:131072 KB 分值: 20  难度:3级算法题
 收藏
 关注

给出N个固定集合{1,N},{2,N-1},{3,N-2},...,{N-1,2},{N,1}.求出有多少个集合满足:第一个元素是A的倍数且第二个元素是B的倍数。

提示:

对于第二组测试数据,集合分别是:{1,10},{2,9},{3,8},{4,7},{5,6},{6,5},{7,4},{8,3},{9,2},{10,1}.满足条件的是第2个和第8个。


Input
第1行:1个整数T(1<=T<=50000),表示有多少组测试数据。
第2 - T+1行:每行三个整数N,A,B(1<=N,A,B<=2147483647)
Output
对于每组测试数据输出一个数表示满足条件的集合的数量,占一行。
Input示例
2
5 2 4
10 2 3
Output示例
1
2

显然,需要满足方程A*xx+B*yy=1+N。我的思路是使用扩展欧几里德求出大于零的最小值xx之后,取其remain=N-(xx)*A,再用remain除以A、B的最小公倍数即可。

感觉51nod上的题目对于算法的优化要求很高,很多时候一个不小心出来的结果TLE比WA都多,所以很多地方都要注意算法的时间啊。

代码:

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;long long N,A,B,result,d,z,xx,yy;void ex_gcd(long long a,long long b,long long &xx,long long &yy)
{if(b==0){xx=1;yy=0;d=a;}else{ex_gcd(b,a%b,xx,yy);long long t=xx;xx=yy;yy=t-(a/b)*yy;}
}long long cal2()
{	result=0;ex_gcd(A,B,xx,yy);z=A*B/d;if((1+N)%d)return 0;else{xx=xx*((1+N)/d);long long r=B/d;xx = (xx%r+r)%r;if(xx==0)xx+=r;long long remain=N-(xx)*A;if(remain<0)return 0;else{result++;result += remain/z;}}return result;
}
int main()
{int count;scanf("%d",&count);while(count--){scanf("%lld%lld%lld",&N,&A,&B);cout<<cal2()<<endl;}return 0;
}




http://chatgpt.dhexx.cn/article/eKIKLvUK.shtml

相关文章

51nod 1266 蚂蚁

题目链接&#xff1a;https://www.51nod.com/onlineJudge/questionCode.html#!problemId1266 题目&#xff1a; n只蚂蚁以每秒1cm的速度在长为Lcm的竿子上爬行。当蚂蚁爬到竿子的端点时就会掉落。由于竿子太细&#xff0c;两只蚂蚁相遇时&#xff0c;它们不能交错通过&#xff…

51nod3155 跳房子

3155 跳房子 小华正在和她的小伙伴玩跳房子游戏。这是一个加强版的跳房子&#xff0c;每一行的格子数量可能超过 2 个。 这个游戏需要在地面上画了n排格子&#xff0c;其中第i排包含a[i]个格子。&#xff08;保证两端的这两排仅有一个格子&#xff09; 之后规定两端的这两个格…

Pycharm中用Appium框架编写第一个自动化脚本

一.环境依赖 Node.js appium python jdk Android SDK Appium-Python-Client Appium-doctor 二.环境搭建 提醒&#xff1a;安装路径如果要自定义的话尽量不要出现中文&#xff0c;不然很容易出现各种报错&#xff01; cmd尽量用管理员身份运行 1.Node.js 下载地址&am…

软件行为(五)之数据存储

笔者愚见&#xff1a;数据的存储方式是软件行为中的重中之重。 存储数据大约有4个地方&#xff1a;寄存器、高速缓存、内存及硬盘等。其中cpu对数据的访问速度也是依次降低&#xff0c;如下图 上图从上到下也是cpu访问数据的顺序&#xff0c;CPU的数据去寄存区去拿&#xff0c…

探究业界云存储平台(1):开源的软件定义存储—CoprHD

在接下来的两章中&#xff0c;我将分别为大家介绍与分析三款软件定义存储解决方案&#xff1a;CoprHD、Ceph与ScaleIO&#xff0c;并对后两者进行性能比较分析。 一、开源的软件定义存储—CoprHD 了解开源的CoprHD&#xff08;CoprHD&#xff09;&#xff0c;需要先了解EMC V…

软件定义存储2.0,谁领风骚?

关注我们牛年牛气冲天 中国的软件定义存储&#xff08;SDS&#xff09;市场就像是早上八九点钟的太阳&#xff0c;那样耀眼&#xff0c;生机勃勃&#xff0c;富有朝气。IDC的报告显示&#xff0c;2020年全年&#xff0c;中国SDS市场规模同比增长51.7%&#xff0c;相比2019年&am…

软件定义存储

在一个生成的数据和数据种类都空前大量的时代&#xff0c;软件定义的存储赋予了企业有效应对此爆炸式增长的途径。 当然&#xff0c;随着营销机器在过去几年的大肆渲染&#xff0c;我们越来越难以了解软件定义的存储的确切含义。因此&#xff0c;为了更好地了解软件定义的存储可…

软件定义存储的逆袭

近日&#xff0c;IDC《2017年第二季度中国软件定义存储及超融合市场跟踪报告》的发布在国内软件定义存储&#xff08;SDS&#xff09;和超融合&#xff08;HCI&#xff09;市场激起涟漪。去年还隐身于“Others”的一众厂商中&#xff0c;今年却一跃成为SDS市场前三&#xff0c;…

SDS软件定义存储

计算机发展到今天&#xff0c;软件定义已经是一种潮流&#xff0c;前有软件定义网络&#xff0c;后有软件定义存储。 对于软件定义存储来说&#xff0c;是随着当年EMC在EMC World上发布的软件定义存储战略迅速成为业界热点的。软件定义存储将硬件存储资源整合起来&#xff0c;…

基于对象的软件定义存储——联想 NetApp DXL系列对象存储方案

联想 DXL 系列对象存储 基于NetApp StorageGRID 技术的联想DXL系列对象存储是一款基于对象的软件定义的存储&#xff0c;它支持 Amazon Simple Storage Service (S3) API 等行业标准对象 API。您可以利用它在全球范围内的 16 个数据中心之间构建一个单一名称空间&#xff0c;并…

软件定义的存储时代即将结束

数据存储、安全性、保护和整体管理对于大多数组织的生存至关重要。 从软件定义的存储时代的结束到本地存储的回归&#xff0c;Nyriad的首席营收官概述了他对最新技术趋势的看法&#xff0c;并提供了他对2023年将会发生的预测。 从以CPU为中心的软件定义存储过渡到卸载辅助架构…

【存储】软件定义存储,看这一篇就够了!

原文&#xff1a;https://www.sohu.com/a/397070625_505795 1.SDS科普 SDS(Software Defined Storage)即软件定义存储&#xff0c;简单地说就是将存储硬件和软件进行分离&#xff0c;采用标准化硬件作为载体(如X86架构)&#xff0c;基于软件实现企业级存储功能和服务。相对于传…

软件定义存储的特征及如何工作

软件定义存储的特征 1 可扩展性 软件定义存储可从传统三节点扩展为数千节点&#xff0c;随着存储设备数量的逐渐递增&#xff0c;软件定义存储内部吞吐量也会不断增加&#xff0c;各项存储性能呈现出线性扩展性能&#xff0c;确保信息可允许群集中的应用控制及访问。 2 弹性…

软件定义存储的定义与分类

2011年8月21日&#xff0c;Netscape创始人马克安德森&#xff08;Marc Andreessen, 硅谷著名投资人, 投资了Facebook、Groupon、Skype、Twitter、Zynga和LinkedIn等高科技新秀&#xff09;&#xff0c;在华尔街日报上发表《软件正在吞噬整个世界》&#xff0c;认为当今的软件应…

【存储】SDS软件定义存储,看这一篇就够了

目录 一、简略说明 二、详细说明 作者&#xff1a;bandaoyuUESTC ,连接&#xff1a;https://blog.csdn.net/bandaoyu/article/details/110245309&#xff0c;不断编辑中 一、简略说明 0.通俗讲是SDS 即存储软件和硬件不绑定&#xff0c;软件不是作为存储设备中的固件&#…

软件定义存储概览(一篇就够)

以下文章来源于TaoCloud &#xff0c;作者刘爱贵 刘爱贵的博客_CSDN博客-数据存储,GNU/LINUX,程序人生领域博主 1.SDS科普 SDS&#xff08;Software Defined Storage&#xff09;即软件定义存储&#xff0c;简单地说就是将存储硬件和软件进行分离&#xff0c;采用标准化硬件…

软件定义的存储

软件定义存储源于VMware公司于2012年提出的软件定义的数据中心&#xff08;SDDC&#xff09;。存储作为软件定义的数据中心不可或缺的一部分&#xff0c;其以虚拟化为基础&#xff0c;但又不仅限于虚拟化。存储虚拟化一般只能在专门的硬件设备上应用&#xff0c;很多设备都是经…

软件定义存储,看这一篇就够了!-- 转自360DOC

1.SDS科普 SDS&#xff08;Software Defined Storage&#xff09;即软件定义存储&#xff0c;简单地说就是将存储硬件和软件进行分离&#xff0c;采用标准化硬件作为载体&#xff08;如X86架构&#xff09;&#xff0c;基于软件实现企业级存储功能和服务。相对于传统存储硬件盒…

数值积分方法:欧拉积分、中点积分和龙格-库塔法积分

目录 写在前面原理代码CMakeLists.txteuler.cppmidpoint.cpprk4.cppcompile&run 参考完 写在前面 1、本文内容 数值积分方法&#xff1a;欧拉积分&#xff08;Euler method&#xff09;、中点积分&#xff08;Midpoint method&#xff09;和龙格&#xff0d;库塔法积分&am…

龙贝格函数求积

龙贝格函数求积 龙贝格函数求积 龙贝格求积公式也称为逐次分半加速法。是数值计算方法之一&#xff0c;用以求解数值积分。是在梯形公式、辛普森公式和柯特斯公式之间关系的基础上&#xff0c;构造出一种加速计算积分的方法。 作为一种外推算法&#xff0c;在不增加计算量的前…