首页 > 其他分享 >P10090 [ROIR 2022 Day 2] 幼儿园的新年

P10090 [ROIR 2022 Day 2] 幼儿园的新年

时间:2024-02-06 20:22:35浏览次数:30  
标签:lfloor P10090 ll rfloor ROIR cfrac long 2022 ans

这道题暴力很容易想到就是:枚举 \(n\) 的倍数 \(m\),将每个 \(m\) 的方案数加起来。

具体来说就是,先保证 \(a\) 比 \(b\) 小,然后分情况讨论 \(m\)。当 \(m\) 小于等于 \(a\) 时,很明显 \(x\) 可以取满 \(0\) 到 \(a\) 整个范围,方案数就是 \(m+1\)。当 \(m\) 大于 \(a\) 时,如果此时 \(m\) 大于 \(a\) 与 \(b\) 的和,则 \(x,y\) 一定够不到 \(m\),直接退出循环;否则方案数就是 \(min(a+b-m+1,a+1)\)。

#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll t,n,a,b,m,ans;
int main(){
	cin>>t;
	while(t--){
		cin>>n>>a>>b,ans=m=0;
		if(a>b)swap(a,b);
		while(1){
			m+=n;
			if(m<=a){
				ans+=m+1;
			}else{
				ll p=m-a;
				if(p>b)break;
				ans+=min(b-p,a)+1;
			}
		}
		cout<<ans<<'\n';
	}
} 

考虑分三种情况进行快速计算:

对于 \(m\) 小于等于 \(a\) 的 \(m\) 共有 \(\lfloor\cfrac{a}{n}\rfloor\) 个,每个的方案数是 \(m+1\)。可以直接用等差数列求和计算。

对于 \(m\) 大于 \(a\) 且小于等于 \(b\) 的 \(m\) 共有 \(\lfloor\cfrac{b}{n}\rfloor-\lfloor\cfrac{a}{n}\rfloor\) 个,每个的方案数是 \(a+1\),直接乘即可。

对于 \(m\) 大于 \(b\) 小于等于 \(a+b\) 的 \(m\) 共有 \(\lfloor\cfrac{a+b}{n}\rfloor-\lfloor\cfrac{b}{n}\rfloor\) 个,每个的方案数是 \(a+b-m+1\),同样也可以用等差数列求和计算。

最终时间复杂度能达到 \(O(t)\)。

#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll t,n,a,b,m,ans;
int main(){
	cin>>t;
	while(t--){
		cin>>n>>a>>b;
		if(a>b)swap(a,b);
		ll r=a/n;
		ans=(n+(m=r*n))*r/2+r;//第一种情况 
		r=b/n-r;
		ans+=r*(a+1),m+=r*n;//第二种情况 
		r=(a+b)/n-(m/n);
		ans+=r*(b+a+1)-((m+n)+(a+b)/n*n)*r/2;//第三种情况 
		cout<<ans<<'\n';
	}
} 

标签:lfloor,P10090,ll,rfloor,ROIR,cfrac,long,2022,ans
From: https://www.cnblogs.com/Exotic-sum/p/18010250

相关文章

  • 【专题】2022全球汽车供应链核心企业竞争力白皮书报告PDF合集分享(附原数据表)
    报告专题链接:http://tecdat.cn/?p=31626原文出处:拓端数据公众号COVID-19疫情在全球范围内平息,制造业积极恢复,新颖的商业模式转型,恢复了全球零部件企业的收入规模和盈利能力。2019~2021年,中国零部件制造企业实现了连续3年的产量和利润增长。它们利用轨道旋转的机会,在电动化、......
  • How to unlock Nissan Altima 2019-2022 Smart Remote 5 Buttons 433MHz Keys with Sm
    Howtounlock Nissan Altima2019-2022Smart Remote 5Buttons433MHzKeyswithSmartPro5000U-Plusfirst,youneedhavea SmartPro5000U-PlusProgrammer,ifyoudonothaveaSmartPro5000U-Plus,youcanbuyonefromchinaobd2.com.https://www.chinaobd2.co......
  • 2022河南萌新联赛第(三)场:河南大学
    A-玉米大炮二分一个时间,然后计算每门大炮可以射击的次数#include<bits/stdc++.h>usingnamespacestd;#defineintlonglong//#defineint__int128#definedoublelongdoubletypedefpair<int,int>PII;typedefpair<string,int>PSI;typedefpair<string,string>PS......
  • 2022省赛B组真题
    2022省赛B组真题(时间复杂度:如果1s就要控制在1亿以内)填空题1.顺子日期小明特别喜欢顺子。顺子指的就是连续的三个数字:123、456等。顺子日期指的就是在日期的yyyymmdd 表示法中,存在任意连续的三位数是一个顺子的日期。例如20220123就是一个顺子日期,因为它出现了一个顺子:123......
  • Windows Server 2022 OVF, updated Jan 2024 (sysin) - VMware 虚拟机模板
    WindowsServer2022OVF,updatedJan2024(sysin)-VMware虚拟机模板2024年1月版本更新,现在自动运行sysprep,支持ESXiHostClient部署请访问原文链接:https://sysin.org/blog/windows-server-2022-ovf/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.org现在......
  • P8338 [AHOI2022] 排列
    建边:\(i\top_i\),这样会形成若干个置换环,每次操作相当于每个点同时走一步。记置换环的数量为\(m\),从\(1\)到\(m\)编号,第\(i\)个置换环的大小是\(s_i\),\(bel_i\)为点\(i\)所属的置换环编号。显然\(f(i,j)=0\)的充要条件是\(i,j\)在同一置换环上,否则\(f(i,j......
  • 2022CCPC女生赛-L.彩色的树(线段树合并)
     链接Problem-L-Codeforces以前迷迷糊糊用dsuontree写的题目但是其实没搞明白现在换一种写(太菜了还是没搞明白dsuontree)题意:给你一棵树,询问给定询问的节点上,子树内距离小于等于k的节点不同颜色的种类有多少个。k是固定的值。解法:本题做法为比较板子的线段树合并,......
  • 在 Windows 10 上使用 Visual Studio 2022 C++ 桌面开发
    工具下载链接:https://pan.quark.cn/s/c70b23901ccb环境介绍在今天的快速发展的软件开发行业中,选择合适的开发环境是非常关键的一步。对于C++开发人员来说,VisualStudio2022(VS2022)是一个强大的集成开发环境(IDE),特别是在Windows10操作系统中。安装VisualStudio2022本文将引导您......
  • 2022-2023 ICPC East Central North America Regional Contest (ECNA 2022)
    Preface闲了两天没训练,今天又开始上班,结果唐得发昏后期也没题可写直接光速下班只能说感觉老外的题目难度跨度都好大,easy确实简单,hard确实难,medium确实少A.A-MazingPuzzle题目看起来很复杂,但仔细一想会发现有用的状态总数只有\(4n^2\)种即我们可以暴力记录下两个机器人的坐......
  • vs2022支持c++20 import模块功能
    参考链接:https://blog.csdn.net/fellow1984/article/details/124819231工具->获取工具和功能->VisualStudioInstaller->单个组件:搜索C++模块,勾选项目属性对应项修改编译代码即可//helloworldimport<iostream>;intmain(){ std::cout<<"helloworld\n";......