【不懂就问】KOI Round1 镜像赛 两题暴力未得分,求问题何处
  • 板块学术版
  • 楼主lx2009
  • 当前回复4
  • 已保存回复4
  • 发布时间2025/7/29 17:01
  • 上次更新2025/7/29 22:02:09
查看原帖
【不懂就问】KOI Round1 镜像赛 两题暴力未得分,求问题何处
1569314
lx2009楼主2025/7/29 17:01

釜山观光,预期拿下1,2,3,34分,实际只过了1,2 Code:

#include<bits/stdc++.h>
using namespace std;
int main(){
	int n;
	cin>>n;
	int num[2][2*n+1]; int vis[2][2*n+1]; char r;
	memset(vis,0,sizeof(vis));
	for(int i=1;i<=n;i++)cin>>r,num[0][i]=(r-'0');
	for(int i=1;i<=n;i++)cin>>r,num[1][i]=(r-'0');
	int d[4];
	cin>>d[0]>>d[1]>>d[2]>>d[3];
	if(d[0]==1){
		int ans=0;
		for(int i=1;i<=n;i++){
			ans+=num[0][i]+num[1][i];
		}
		cout<<ans<<endl;
	}
	else if(d[3]==1)
	{
		int ans=0;
		for(int i=1;i<=n;i++){
			if(!vis[0][i] && (num[0][i]==1 || num[1][i]==1)){
				ans+=1; vis[0][i+1]=1;vis[0][i+2]=1;vis[0][i+3]=1;
			}
		}
		cout<<ans<<endl;
	}
	else
	{
		int g=3e10;
		for(int i=0;i*4<=n;i++){
			g=min(g,i*d[3]+min(2*(n-4*i)*d[0],min(2*((n-4*i+2)/3)*d[1],2*((n-4*i+4)/5)*d[2])));
		}
		cout<<g<<endl;
	}
	return 0;
}

干草堆,预期拿下1,2,5,50分,实际只有5 Code:

#include<bits/stdc++.h>
using namespace std;
#define int long long
signed main()
{
	int n,Q,x,p;
	cin>>n>>Q;
	int a[1000001]; int xx[1000001];
	for(int i=1;i<=n;i++){
		cin>>a[i];
	}
	if(n==Q)
	{
		int sum=0; int past=0;
		priority_queue<int,vector<int>,greater<int> > q;
		for(int i=1;i<=Q;i++){
			cin>>xx[i]>>p;
		}
		for(int i=1;i<=n;i++)
		{
			sum+=a[i]; past++; q.push(a[i]);		
			while(sum-q.top()>=p && !q.empty()){
				sum-=q.top(); q.pop();past--;
			}
			if(sum<p)cout<<-1<<endl;
			else cout<<past<<endl;
		}
		return 0;		
	}
	for(int i=1;i<=Q;i++){
		cin>>x>>p; 
		priority_queue<int,vector<int>,less<int> > q;
		for(int j=1;j<=x;j++)q.push(a[j]);
		int sum=0,cnt=0;
		while(sum<p && !q.empty())sum+=q.top(),q.pop(),cnt++;
		if(sum<p)cout<<-1<<endl;
		else cout<<cnt<<endl;
	}
	return 0;
}

蒟蒻赛时hongwen

2025/7/29 17:01
加载中...