Codeforces Round #706 (Div. 2) D. Let‘s Go Hiking

传送门

题目大意

给n个不同的整数,刚开始,Qingshan 可以选一个数a, Daniel 可以选择一个数b,之后Qingshan 先走,Qingshan 可以选择移动到在数组中与数字a相邻的且小于a的数,Daniel 可以选择移动到在数组中与数字b相邻的且大于b的数,并且a和b不能相等,问可以让Qingshan获胜的a的个数,获胜条件为此时该Daniel 走,且Daniel 无处可走

题解

我们可以找最长的单调序列,因为显然单调序列越长,可以走的步数越多,获胜的可能越大。
如果最长的单调序列数量有3个或3个以上,那么 Qingshan 必输,因为Daniel 完全可以选择一个和Qingshan 不同的单调序列,由于Qingshan 先走,最后一定是Qingshan 先走到尽头。
如果最长的单调序列只有1个,不如将其命名为s,那么Qingshan 必然要选择s里最大的值a,如果s为奇数个,Daniel 可以选择s中的次小值b,这样如果Qingshan 向b的方向走,最终Qingshan 会和Daniel 相遇,且此时该Qingshan 移动了,Qingshan 输,如果Qingshan 向背离b的方向走,Qingshan 最多走s-2次,因为最长的单调序列长度为s且只有一个,而Daniel 也能走s-2次,因为s中还有s-2个比b大的数,此中情况也是Qingshan 输,如果s为偶数个,那么同理Daniel 选择s中的最小值,Qingshan 必输
如果最长的单调序列有2个,且并不相连,形成如\ \样子的两个递减序列,或形成如/ /样子的两个递增序列,那显然Qingshan 会输,和最长单调序列有3个的情况一样,如果形成如V的山谷形单调序列,那么Daniel 的选择更多,而且由于Daniel 后手,所以Qingshan 必输,如果形成/\的山形单调序列,如果每个序列长度为偶数,那么Qingshan 还是必输,大家可以走一下试试,只有序列长度为奇数时,Qingshan 才会胜利
所以得出了结论,只有形如/\的两个相连的单调序列,如1 2 5 4 3,才能让Qingshan 胜利

#include<cstdio>
const int MAX=1e5+5;
int p[MAX];
int main(){
	int n,num=0,l=0,lnow=1,lr=1;
	scanf("%d",&n);
	for(int i=0;i<n;i++){
		scanf("%d",&p[i]);
	}
    n--;
	while(n){
		lnow=1;
		while(n&&p[n]>p[n-1]){
			lnow++;
			n--;
		}
		if(lnow==l){
			num++;
		}else if(lnow>l){
			lr=0;
			num=1;
			l=lnow;
		}
		lnow=1;
		while(n&&p[n]<p[n-1]){
			lnow++;
			n--;
		}
		if(lnow==l){
			num++;
		}else if(lnow>l){
			lr=1;
			num=1;
			l=lnow;
		}
	}
	if(num==2&&l&1&&lr){
		printf("1\n");
	}else{
		printf("0\n");
	}
	return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基于vue健身小程序正是采用微信小程序和网络设计的新型系统,可以有效的把健身信息与网络相结合,为用户提供工作帮助和管理需求。本系统采用mysql数据库存储数据,兼容性更强,可跨越多种平台,采用的框架为ssm。主要设计的内容包括课程信息、教练信息、健身视频。教练可以上传健身视频,学员可以购买课程和预约教练以及在线充值、发帖。为了可以给用户更多的提醒,本系统中加入了当前登录角色的提示内容。管理员在系统中可以更新各种数据信息。本系统是信息化社会发展的必然产物,可以为用户提供更为高效的管理以及辅助,同时也可以改变健身房管理的局面,提高效率。 登录功能为管理员、教练和学员登录,在登录界面设计中包括用户名和密码、权限的检验。用户名和密码、权限的检验过程由数据库自动完成,此过程需要1秒左右。首先由用户填写账号和密码,选择权限,然后点击登录系统,数据库自行对用户名和密码进行对比,所填写数据正确方能进行登录,所填写数据错误则需要返回登录界面重新登录。首页界面是最直接的展示,用户可以对系统进行最直接的了解。在本功能界面里可以看到背景图片、功能导航栏,视频信息、课程信息、教练信息等。学员信息是健身房的重要组成部分,管理员可以添加学员信息,查询学员信息.。教练信息管理功能分为管理员管理教练信息和登记、查询教练信息,管理员可以看到教练的各项基本信息,可以删除教练的基本信息。系统里展示的健身视频都可以由管理员进行审核和添加管理,教练也可以发布视频。管理员可以输入视频名称和上传视频来实现健身视频的添加。管理员和教练可以上传培训课程,学员可以浏览课程信息。管理员和教练都可以管理预约信息,学员在看到教练后可以进行预约。管理员可以审核帖子信息。管理员、教练和学员都可以管理订单信息。学员在课程详情里可以购买课程。学员在教练详情里可以评价、收藏以及预约。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值