比特微 post eking文件 rspec angular material swiftui 后台管理网页模板 jq绑定click事件 ajax的get请求 oracle查看数据库状态 java算法培训 git下载项目 安装mysql python的extend python定义一个变量 java入门级教程 java变量类型 java入门学习 java学习文档 java语言是什么 linux系统安装 javascript实例 flash实例 苹果手机老是自动重启 咪咕客户端下载 考试练习系统 怎么设置迅雷为默认下载器 steam怎么卸载 掌门一对一下载 ansys安装教程 win10wifi hyqihei python列表求和 jsp源码 勇敢者的游戏3 ps高手教程 神牧属性 ps怎么做漂亮艺术字 浣海之核 太阳代理ip
当前位置: 首页 > 学习教程  > 编程语言

Codeforces Round #666 (Div. 2) D Stoned Game

2020/8/31 14:36:59 文章标签:

题目链接:https://codeforces.com/contest/1397/problem/D

题意

两个人轮流取石子,每一次只能在上一次没有被取过的石子堆中,取一颗石子,当另一个人无法取时获胜

思路

我们会发现,无论是对于先手还是后手而言,优先策略总是取当前可以取的最多的人,又因为数据范围比较小,于是我们就可以用一个优先队列和一个tmp来模拟取的过程

#include <iostream>
#include<stdio.h>
#include<string>
#include<string.h>
#include<map>
#include<queue>
#include<deque>
#include<vector>
#include<algorithm>
#include<set>
#include<cmath>
using namespace std;
typedef long long ll;
typedef pair<int,int> P;
const int maxn=1e5+100;
const int mod=1e9+7;

int t;
int a[110];
int n;
int main()
{
    cin>>t;
    while(t--)
    {
        cin>>n;
        priority_queue<int,vector<int>,less<int> >que;
        for(int i=1;i<=n;i++) cin>>a[i],que.push(a[i]);
        int tmp=-1;
        int num=0;
        while(que.size())
        {
            int p=que.top();que.pop();
            if(tmp>0) que.push(tmp);
            tmp=p-1;
            num++;
        }
        if(num%2) printf("T\n");
        else printf("HL\n");
    }
    return 0;
}



本文链接: http://www.dtmao.cc/news_show_150265.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?