“中国东信杯”广西大学第四届程序设计竞赛(同步赛)

“中国东信杯”广西大学第四届程序设计竞赛(同步赛),第1张

“中国东信杯”广西大学第四届程序设计竞赛(同步赛)
  • 文章目录
    • 题目知识点
    • 题目代码
      • A Antinomy与比赛的含金量
      • B Antinomy与取模
      • C Antinomy与清理魔法
      • E Antinomy慢慢点技能树
      • F Antinomy与金手指
      • H Antinomy与法术威力
    • 题解pdf下载链接
  • 结语

文章目录 题目知识点
  • 模拟
  • gcd和lcm
  • 思维
  • 完全背包
  • kmp
  • 单调栈
题目代码 A Antinomy与比赛的含金量
#include
#include
using namespace std;
typedef long long int ll;
const ll maxn=1e5+10;
ll t;
int main(){
	cin>>t;
	while(t--){
		ll x,y,z;
		cin>>x>>y>>z;
		if(x>90&&y>90&&z>60){
			cout<<"A+\n";
		}else{
			cout<<"E+\n";
		}
	}
	return 0;
}
B Antinomy与取模
#include
#include
using namespace std;
typedef long long int ll;
const ll maxn=1e5+10;
ll t;
ll gcd(ll a,ll b){
	return b ? gcd(b,a%b) : a;
}
int main(){
	scanf("%lld",&t);
	while(t--){
		ll x,y,l,r;
		scanf("%lld%lld%lld%lld",&x,&y,&l,&r);
		ll val=gcd(x,y);
		val=x*y/val;
		ll q=l/val;
		ll p=r/val;
		ll flag=0;
		for(int i=q;i<=p;i++){
					//cout<=l&&(i*val)<=r){
				printf("%lld\n",i*val);
				flag=1;
				break;
			}
		}
		if(!flag){
			printf("-1\n");
		}
	}
	return 0;
}
C Antinomy与清理魔法
#include
#include
using namespace std;
typedef long long int ll;
const ll maxn=1e5+10;
ll n,k;
ll a[maxn];
int main(){
	scanf("%lld%lld",&n,&k);
	for(int i=1;i<=n;i++){
		scanf("%lld",&a[i]);
	}
	sort(a+1,a+1+n);
	ll flag=0;
	for(int i=2;i<=n;i++){
		if((a[i]-a[i-1])>k){
			flag=1;
			break;
		}
	}
	if(flag){
		printf("NO");
	}else{
		printf("YES");
	}
	return 0;
}
E Antinomy慢慢点技能树
#include
#include
using namespace std;
typedef long long int ll;
const ll maxn=1e5+10;
ll n,k;
ll w[maxn];
ll v[maxn];
ll f[maxn];
int main(){
	scanf("%lld",&n);
	for(int i=1;i<=n;i++){
		double v1;
		scanf("%lf %lld",&v1,&w[i]);
		v1=(v1+0.00005)*10000;
		v[i]=v1;
		//cout<=v[i];j--){
			f[j]=max(f[j],f[j-v[i]]+w[i]);
			ans=max(f[j],ans);
			//cout<
F Antinomy与金手指
#include
#include
using namespace std;
typedef long long int ll;
const ll maxn=5e5+10;
ll n;
string s,t;
ll nex[maxn];
void getnex(){
	ll k=-1;
	ll j=0;
	nex[0]=-1;
	ll len=s.size();
	while(jlen2){
		return 0;
	}
	ll i=0,j=0;
	while(i>n;
	cin>>t>>s;
	t+=t;
	getnex();
	if(!kmp()){
		printf("TAT");
	}else{
		printf("wow");
	}
	return 0;
}
H Antinomy与法术威力
#include
#include
#include
using namespace std;
typedef long long int ll;
const ll maxn=2e5+10;
ll st[maxn];
ll l[maxn];
ll r[maxn];
ll a[maxn];
ll ans[maxn];
ll n;
ll now;
int main(){
	scanf("%lld",&n);
	for(int i=1;i<=n;i++)
	{
		scanf("%lld",&a[i]);
	}
	now=-1;
	st[++now]=0;
	for(int i=1;i<=n;i++){
		while(now>=0&&a[i]<=a[st[now]])now--;
		l[i]=st[now];
		st[++now]=i;
	}
	now=-1;
	st[++now]=n+1;
	for(int i=n;i>=1;i--){
		while(now>=0&&a[i]<=a[st[now]])now--;
		r[i]=st[now];
		st[++now]=i;
	}
	//a[i]在r[i]-l[i]-1长度及其以下皆有用 
	for(int i=1;i<=n;i++){
		ans[r[i]-l[i]-1]=max(a[i],ans[r[i]-l[i]-1]);
		//cout<=1;i--){
		ans[i]=max(ans[i],ans[i+1]);
	}
	for(int i=1;i<=n;i++){
		printf("%lld ",ans[i]);
	}
	return 0;
}
题解pdf下载链接
  • pdf题解
结语
  • 遇事不决 可问春风
  • 春风不语 即随本心
  • 我若本心能定 怎会遇事不决 春风亦有春风愁 不劳春风为我忧。
  • 自此春风盈满袖,只为一解平安愁

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1352482.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-14
下一篇 2022-06-14

发表评论

登录后才能评论

评论列表(0条)