2022杭电多校4

最终结果
在这里插入图片描述

T1004 Link with Equilateral Triangle

说实话赛场看一眼题意然后两三分钟的时候一对队伍过了这个题就直接猜结论答案一定是No了,然后AC了。

题意:

有一个边长为n的大等边三角形。这个大三角形由n2个边长为1的小等边三角形组成。
将用以下限制来填充小三角形的每个顶点:

在这里插入图片描述

·填写的数字应该是0、1或2。

·大三角形的左边不应该填充0。大三角形的右边不应该填1。大三角形的底边不应该填2。

·对于每个边长为1的小三角形,三个顶点的和不应该是3的倍数。
请问当为n边形的时候是否可以填充三角形,使其满足上述所有条件?

官方的证明:对于一个合法的解,应当满足不存在同时包含0,1,2的三角形,下面我们证明这样的三角形一定存在。左下角必然是1,右下角必然是0,底边不能含有2,则底边上必然有奇数条1-0的边,这些边都属于一个小三角形。考虑其他的0-1边,由于不在两个斜边上,其他的0-1边必然属于两个三角形。因此“每个三角
形内0-1边的数量”的和必然为奇数。但是,假设不存在0-1-2的三角形,则所有三角形都必然包含0条或2条的0-1边,产生了矛盾。因此一定存在0-1-2的三角形。

#include<bits/stdc++.h>
#define LL long long
#define MIN 0xc0c0c0c0c0c0c0c0
#define PII pair<LL,LL>
#define x first
#define y second
using namespace std;

int n;
void solve()
{
	cin>>n;
	for(int i=1;i<=n;i++)
	{
		printf("No\n");
	}
}

int main()
{
	#ifndef ONLINE_JUDGE
	freopen("in.txt","r",stdin);
	#endif
	solve();
	return 0;
}

T1006 BIT Subway

在这里插入图片描述
题意:阅读理解一下就是计算要买同样的票,按官方给定的计费规则和按主人公yy的计费规则所需要花费的钱。

idea:赛场我的做法是按照题意分段每一种情况都进行模拟,所以写了一堆if,非常耗时间还容易绕进去。
code:

#include<bits/stdc++.h>
#define LL long long
#define MIN 0xc0c0c0c0c0c0c0c0
#define PII pair<LL,LL>
#define x first
#define y second
using namespace std;

LL n;
double ans1,ans2;
double a[101010];
void solve()
{
	ans1 = ans2 = 0;
	scanf("%lld",&n);
	for(int i=1;i<=n;i++)
	{
		scanf("%lf",&a[i]);
//		cout<<a[i]<<endl;
		if( ans2>=200 )
		{
			ans2 += a[i]*0.5;
		}
		else if( ans2>=100 )
		{
			ans2 += a[i]*0.8; 
		}
		else ans2 += a[i];
		
		if( ans1>=200 )
		{
			ans1 += a[i]*0.5;
		}
		else if( ans1>=100 )
		{
			if( ans1+a[i]*0.8>200 )
			{
				ans1 = ans1 + (200-ans1)  + ( a[i] - (200-ans1)/0.8 )*0.5; 
			}
			else
			{
				ans1 = ans1 + a[i]*0.8;
			}
		}
		else
		{
			if( 100/0.8 + (100-ans1) < a[i] )
			{
				ans1 = ans1 + ( 100-ans1 ) + 100 + ( a[i]-(100-ans1)-(100/0.8) )*0.5; 
			}
			else if( (100-ans1)<a[i] ) //ans1+a[i]>100
			{
				ans1 = ans1 + (100-ans1) + ( a[i]-(100-ans1) )*0.8;
			}
			else
			{
				ans1 = ans1 + a[i];
			}
		}
	}
	printf("%.3lf %.3lf\n",ans1,ans2);
}

int main()
{
	#ifndef ONLINE_JUDGE
	freopen("in.txt","r",stdin);
	#endif
	int t;
	cin>>t;
	while( t-- )
	solve();
	return 0;
}

然而真实情况是对于官方的计费规则很简单,主人公YY的规则呢推一推会发现是一个关于原总票价的分段函数
在这里插入图片描述

T1007 Climb Stairs

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值