NOIP模拟赛五

link

其他人都好高,我菜死了……

T1

写对了,但没写对。思路和代码都对了,但细节错了,没有判断 x<b 的情况导致挂了40pts,傻逼出题人还说往样例里面加了hack了,淦。

不过好像是因为我的写法不同所以也只挂了40pts,只能说玄学了。

code

点击查看代码
#include<bits/stdc++.h>
using namespace std;
#define ll long long
const ll N=114514,M=1919810;
ll n,b,a,ans1,ans2,tot;
//723787
//804201 9 429
int main(){
	cin>>n>>a>>b;
	ll x=n;
	if(a==1){
		if(b==1) cout<<ceil((double)n*1.0/2.0);
		else if(b>=n) cout<<n;
		else{
			ll x=n/(2*b);
			ll y=n%(2*b);
			cout<<b*x+(y>b?b:y);
		}
		return 0;
	}
	while(x>0){
		++tot;
		ll val=x-(x-b)/a;
		if(x-b<0) val=x; //就是这个判断,同失40pts
		if(tot&1) ans1+=val;
		else ans2+=val;
		x=(x-b)/a;
	}
	cout<<max(ans1,ans2);
	return 0;
}

T2

一个出题人说的比较简单的dp?但是我不会,我也不想补了,反正现在的水平肯定写不出来,还不如去做点更能提升自己的题。
做法先放这里:piCGpmq.png

T3

暴力有50pts?6。不过旁边的老哥没加读入优化第三个点挂了emm。

大致做法:二维前缀和。但是有点看不懂。

贺了榜上的正解,做出来的人还是非常多的,但是我菜/ll

code

点击查看代码
#include<bits/stdc++.h>
using namespace std;
#define ll long long
const ll N=514,M=1919810;
ll n,Q,opt,a,b,sum;
ll s1[N][N],s2[N][N],s3[N][N];
int main(){
	//freopen("Aha4.in","r",stdin);
	//freopen("Aha4.out","w",stdout);
	ios::sync_with_stdio(0);
	cin.tie(0); cout.tie(0); 
	cin>>n>>Q;
	while(Q--){
		cin>>opt>>a>>b;
		if(a>b) swap(a,b);
		if(opt==1){
			sum+=b-a;
			for(int i=a;i<=n;++i) ++s1[i][b];
			for(int i=b;i>=1;--i) ++s2[a][i];
			for(int i=b;i<=n;++i) ++s3[b-a][i];
		}
		else{
			ll ans=sum;
			for(int i=1;i<=n;++i)
				if(b<=i) ans-=(b-a)*(s1[a][i]);
				else if(a+b<2*i) ans-=s1[a][i]*(2*i-a-b);
			for(int i=a+1;i<=n;++i)
				if(a+b>2*i) ans-=s2[i][b]*(a+b-2*i);
			for(int i=1;i<=n;++i)
				if(2*i>b-a) ans-=(b>i+a?s3[i][b-1]-s3[i][a+i]:0)*(2*i-(b-a));
			cout<<ans<<'\n';
		}
	}
	return 0;
}

T4

太难,同T2,先放做法:
piCGkhF.png

piCGEp4.png

posted @   和蜀玩  阅读(9)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示