专栏文章

5.20错题总结

个人记录参与者 1已保存评论 0

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
0 条
当前快照
1 份
快照标识符
@mip8ey3g
此快照首次捕获于
2025/12/03 07:51
3 个月前
此快照最后确认于
2025/12/03 07:51
3 个月前
查看原文

T3(P9241 [蓝桥杯 2023 省 B] 飞机降落)

考试思路:按照输入顺序模拟

考试代码:
CPP
#include<bits/stdc++.h>
using namespace std;
struct N
{
	int t,d,l;
}a[15];
void solve()
{
	int n,t=0,d=0,l=0,jlsj=0;
	bool flag=0;
	cin>>n;
	for(int i=1;i<=n;i++)
		cin>>a[i].t>>a[i].d>>a[i].l;
	for(int i=1;i<=n;i++)
	{
		if(a[i].t>=jlsj)
		{
			t=a[i].t;
			d=a[i].d;
			l=a[i].l;
			jlsj=t+l;
		}
		else if(a[i].t<jlsj&&a[i].t+a[i].d>=jlsj)
		{
			t=a[i].t;
			d=a[i].d;
			l=a[i].l;
			jlsj+=l;
		}
		else
		{
			flag=1;
			break;
		}
	}
	if(flag==1)
		cout<<"NO\n";
	else
		cout<<"YES\n";
	return ;
}
int main()
{
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	int t;
	cin>>t;
	while(t--)
		solve();
	return 0;
}

错误原因:没想出正解

正确思路:直接暴搜

正确代码:
CPP
#include<bits/stdc++.h>
using namespace std;
const int N=15;
#define int long long
struct node
{
	int t,d,l,r;
}f[N];
int t,n,vis[N];
bool flag;
void dfs(int dep,int now)
{
	if(dep==n)
	{
		flag=1;
		return ;
	}
	for(int i=1;i<=n;i++)
	{
		if(!vis[i]&&f[i].r<now) 
			return ;
		if(!vis[i]&&f[i].r>=now)
		{
			vis[i]=1;
			if(f[i].l>now) 
				dfs(dep+1,f[i].l+f[i].t);
			else 
				dfs(dep+1,now+f[i].t);
			vis[i]=0;
		}
	}
}
string solve()
{
	cin>>n;
	flag=0;
	int k;
	for(int i=1;i<=n;i++) 
	{
		cin>>f[i].l>>k>>f[i].t;
		f[i].r=f[i].l+k;
	}
	for(int i=1;i<=n;i++) 
	{
		vis[i]=1;
		dfs(1,f[i].l+f[i].t);
		vis[i]=0;
	}
	if(flag) 
		return "YES\n";
	return "NO\n";
}
signed main()
{
	int T;
	cin>>T;
	while(T--)
		cout<<solve();
	return 0;
}

T4(P1067 [NOIP 2009 普及组] 多项式输出)

考试思路:直接按照题目模拟

考试代码:
CPP
#include<bits/stdc++.h>
using namespace std;
int main()
{
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	int n,a;
	cin>>n>>a;
	if(a<0)
		cout<<'-';
	a=abs(a);
	cout<<a<<"x^"<<n;
	for(int i=n-1;i>=0;i--)
	{
		cin>>a;
		if(a==0)
			continue;
		if(a<0)
			cout<<"-";
		else
			cout<<"+";
		a=abs(a);
		if(a==1&&i!=0)
		{
			if(i==1)
				cout<<"x";
			else if(i!=0)
				cout<<"x^"<<i;
			continue;
		}
		if(i==1)
			cout<<a<<"x";
		else if(i==0)
			cout<<a;
		else
			cout<<a<<"x^"<<i;
	}
	return 0;
}

错误原因:没有判断n为0时

正确思路:直接按照题目模拟

正确代码:
CPP
#include<bits/stdc++.h>
using namespace std;
int main()
{
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	int n,a;
	cin>>n>>a;
	if(a<0)
		cout<<'-';
	a=abs(a);
	if(a==1)
	{
		if(n==0)
			cout<<a;
		else
			cout<<"x^"<<n;
	}
	else
		cout<<a<<"x^"<<n;
	for(int i=n-1;i>=0;i--)
	{
		cin>>a;
		if(a==0)
			continue;
		if(a<0)
			cout<<"-";
		else
			cout<<"+";
		a=abs(a);
		if(a==1&&i!=0)
		{
			if(i==1)
				cout<<"x";
			else if(i!=0)
				cout<<"x^"<<i;
			continue;
		}
		if(i==1)
			cout<<a<<"x";
		else if(i==0)
			cout<<a;
		else
			cout<<a<<"x^"<<i;
	}
	return 0;
}

T5(P7667 [JOI 2018 Final] 美术展览 / Art Exhibition)

考试思路:二维前缀和+暴力

考试代码:
CPP
#include<bits/stdc++.h>
using namespace std;
#define int long long
int n,sum[500005],mx=-1e9;
struct N
{
	int cc,jz;
}a[500005];
bool cmp(N x,N y)
{
	if(x.cc!=y.cc)
		return x.cc<y.cc;
	return x.jz<y.jz;
}
signed main()
{
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	cin>>n;
	for(int i=1;i<=n;i++)
		cin>>a[i].cc>>a[i].jz;
	sort(a+1,a+n+1,cmp);
	for(int i=1;i<=n;i++)
		sum[i]+=sum[i-1]+a[i].jz;
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=i;j++)
		{
			int mxx=-1e9,mnx=1e9;
			for(int z=j;z<=i;z++)
			{
				mxx=max(mxx,a[z].cc);
				mnx=min(mnx,a[z].cc);
			}
			mx=max(mx,sum[i]-sum[j-1]-(mxx-mnx));
		}
	}
	cout<<mx;
	return 0;
}

错误原因:方法错了

正确思路:前缀和

正确代码:
CPP
#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=500005;
int n,ans,dp[N];
struct node
{
	int a,b;
}s[N];
bool cmp(node aa,node bb)
{
    return aa.a<bb.a;
}
signed main()
{
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	cin>>n;
	for(int i=1;i<=n;i++)
		cin>>s[i].a>>s[i].b;
	sort(s+1,s+n+1,cmp);
	for(int i=1;i<n;i++)
		dp[i]=s[i].b-s[i+1].a+s[i].a;
	int maxi=0;
	for(int i=1;i<=n;i++)
	{
		int t=s[i].b;
		ans=max(ans,t+maxi);
		maxi=max(maxi+dp[i],0ll);
	}
	cout<<ans;
	return 0;
}

评论

0 条评论,欢迎与作者交流。

正在加载评论...