2022.2.27 队内个人训练赛(下)

G - A Funny Game

传送门:2484 -- A Funny Game (poj.org)

有一圈的硬币,编号从1-n,每次可以拿两个相邻或者一个硬币,Alice先拿,拿走最后一个硬币的人获胜,求谁获胜。

题解:1、2的时候Alice必胜,3及以上alice拿1个或者两个,bob去构造两条长度一样的链,之后对称就行

#include<iostream>
#include<algorithm>
#include<cmath>

char s[200];
int ab,ba;

using namespace std;
int main()
{
	long long  _,n,m;
	//cin >> _;
	while (cin >> n)
	{
		if(n==0)break;
		if(n<=2)	cout<<"Alice\n";
		else cout<<"Bob\n";
	}
}

H - Poisoned Dagger

勇士有一把刀,上面有毒,在砍了龙之后的k秒后龙会掉血(1血/秒,在第2s砍k为2时就是在2秒和3s的时候掉血),如果还在中毒效果的时候再砍一刀那么中毒效果更新(又从k开始),给一条龙的血量和勇士在什么时候砍龙,求最小的k

题解:模拟,k最小为血量/时间,然后一个循环来模拟

#include<iostream>
#include<algorithm>
#include<cmath>

int s[200];
int a,b;

using namespace std;
int main()
{
	long long  _,n,m,sum;
	cin >> _;
	while (_--)
	{
		cin>>n>>m;
		long long num;
		if(m%n==0) num=m/n;
		else num=m/n+1;
		cin>>a;
		for(int i=1;i<n;i++)
		{
			cin>>b;
			s[i]=b-a;
			a=b;
		}
		sort(s+1,s+n);
		if(s[1]>=num) cout<<num<<"\n";
		else
		{
			//int ans=n*num;
			bool flag=0;
			 sum=0;
			for(int i=1;i<n;i++)
			{
				if(s[i]<num)
				{
					sum+=s[i];//ans-sum
				}
				else
				{
					if((n-i+1)*num+sum>=m)
					{
						flag=1;
						break;
					}
					else
					{
						if((m-sum)%(n-i+1)==0) num=(m-sum)/(n-i+1);
						else num=(m-sum)/(n-i+1)+1;
						if(s[i]<num)
						sum+=s[i];
						else
						{
							flag=1;
							break;
						}
						 	
					}
				}
			}
			if(flag==0)
			{
				cout<<m-sum<<"\n";
			}
			else
			{
				cout<<num<<"\n";
			}
		}
	}
}

I - Frog Traveler 

青蛙在井底,在位置i的时候能最多能跳a[i]步(0-a[i]),跳到位置i的时候会往下滑b[i]步,问啥时候能跳到井口

笑死,发现非常早之前就查了个眼,到现在都没补,先放着

J - Pisces 

传送门:Problem - 1023G - Codeforces

待补

K - Beautiful Decomposition 

传送门:Problem - 279E - Codeforces

待补

L - Cutting Game 

传送门:2311 -- Cutting Game (poj.org)

有一张W*H的纸,每轮,一个人只能从横着切一刀,另一个人只能从竖着切一刀,求谁先切不动

博弈论,SG函数

就这样吧先摸了。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值