HT-018 Div3 构造 题解 [ 黄 ] [ 数学 ] [ 结论 ]
构造:结论题,gcy数竞大佬tql%%%orz。
结论
先放结论:如果
证明
对
当 时
包含
尝试构造 :
解得:
因为
当 时
把
所以设
则解得
显然
当 时
把
所以设
则解得
显然
因此得证。
代码细节
注意
因为 c++ 在对负数取模时,会先把负数去掉,把他当成正数后取模,最后再加上负号。和我们先模在加再模的方式不同。
代码
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<int,int> pi;
ll t,l,r;
int main()
{
freopen("construct.in","r",stdin);
freopen("construct.out","w",stdout);
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
cin>>t;
while(t--)
{
cin>>l>>r;
ll rg=r-l+1;
if(r<0)
{
l*=-1;
r*=-1;
swap(l,r);
}
if(r%4==0)r-=2;
else if(r%4==1)r-=3;
else if(r%4==3)r-=1;
cout<<rg-ll(ceil((r-l+1)/4.0))<<endl;
}
return 0;
}
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战