第八届“图灵杯”NEUQ-ACM程序设计竞赛

C-上进的凡凡

解题思路

一开始的思路是把数组分成一段段不下降序列,根据公式 (n+1)*n/2求解,但因为没有处理好,因而用了dp来写;

总结

对于这样的需要处理特殊情况的问题,尽量不要写的冗杂;要找出通式;因为根据经验,写得越复杂越漏洞百出~~~~~~。

代码展示

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn=100005;
/*

*/
ll Num[maxn];
int main(){
	int n;
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>Num[i];
	}
	ll ans=0;ll l=0;
	for(int i=1;i<=n;i++){
		if(Num[i]>Num[i+1]||i==n){
			ans+=(i-l+1)*(i-l)/2;
			l=i;
		}
	}
	cout<<ans<<endl;
	return 0;
}

D-Seek the Joker I

解题思路

巴什博弈问题;知道要时刻维持“平衡”后,就能根据 n%(m+1)来判断了。

https://baike.baidu.com/item/%E5%B7%B4%E4%BB%80%E5%8D%9A%E5%BC%88/1819345?fr=aladdin

总结

对于这样的博弈类的题目,大多都有“固定套路",可以多了解几种不同的博弈类型去应对不同变形。

代码展示

#include<bits/stdc++.h>
using namespace std;
/*
都抽k张 
什么情况下必胜 
*/
int main(){
	int t;
	cin>>t;
	while(t--){
	bool flag=false;
		int n,k;
		cin>>n>>k;
		int f=(n-1)%(k+1);
		if(f!=0)
			cout<<"yo xi no forever!"<<endl;
		else 
			cout<<"ma la se mi no.1!"<<endl; 
	}
	return 0;
}

K-黑洞密码

解题思路

比赛的时候没看;赛后重新看了遍,感觉不是难题,就是理解题目+字母大小写转换。

总结

1.在比赛的时候,实力是最重要的一方面;但是,在实力之外,做题策略也尤为重要,应该安排好时间分配,这样才能让自己发挥的更好;
2.涉及ASII值的时候,像大小写转换,尽量不涉及数字,一律用字符代替;比如 ‘a’,‘A’ 等来替换 26~~~~~。
3.反转string:reverse;

代码展示


#include<bits/stdc++.h>
using namespace std;
#define fol(i,n) for(int i=0;i<n;i++)
/*
ZzcL 6246
twOD 4026
yRWG 3783
GHWC 0971

Zzc6 Ltw2 
OD4y R640 
263W 7G8G 
30HW 9C71
*/
vector<int>num;
vector<char>cha;
int main(){
	int n=32;
	while(n--){
		char c;
		cin>>c;
		if(isdigit(c))
			num.push_back(c-'0');
		else
			cha.push_back(c);
	}
	fol(i,16)
		cout<<i+1<<" "<<cha[i]<<" "<<num[i]<<endl;
	cout<<"==============="<<endl;
	string str="";
	fol(i,16){
		char f=cha[i];
		if(f+num[i]>'z')
			f='A'+num[i];
		else if(f<='Z'&&f+num[i]>'Z')
			f='a'+num[i];
		else f+=num[i];
		str+=f;
//		else if(f<='Z'&&f+num[i]>'Z')
//			f=f+num[i] 
		if(i%4==3){
			reverse(str.begin(),str.end());
			cout<<str<<endl;
			str="";
		}
	}
	return 0;
}

L-建立火车站

解题思路

总结

代码展示



D-Seek the Joker I

解题思路

总结

代码展示



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

高冷小伙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值