第八届“图灵杯”NEUQ-ACM程序设计竞赛个人赛(同步赛) (2)

芳乃并不擅长市井的游戏,所以总是输多赢少。而昨日被芳乃的神乐舞深深吸引,以致一早就前来建实神社希望能再睹芳华的你碰巧听见了此事。尽管不知道为什么美丽的巫女要自言自语地为玩扑克而苦恼,但你毅然决然地毛遂自荐,希望能为芳乃一解眉间愁。

芳乃告诉了你丛雨准备了n张扑克牌作为牌堆,每人每次至多从牌堆顶部抽k张牌,至少抽1张牌。牌堆底部的最后一张牌作为乌龟,抽中的将输掉这一轮比赛。芳乃想知道在你的帮助下,她和丛雨都采取积极策略时,她自己是否一定能获胜。作为被丛雨邀请的一方,每轮游戏都是芳乃先抽。

因为看不见丛雨而误认芳乃罹患精神分裂的你在不由感叹红颜薄命的同时,决定尽全力帮助芳乃完成她的委托。

声明:本题中的所有角色在剧情发生时均已超过18岁。

题意:

芳乃和从雨玩游戏。n张牌,每人最多每次最多取k张牌,至少取一张,抽到最后一张牌的人输,芳乃先抽。

芳乃赢输出“yo xi no forever!”否则输出”ma la se mi no.1!“

思路:

简单的巴什博弈,之前是n张牌,取完最后一张的赢,本题只需让n-1即可得到裸的巴什博弈。判(n - 1)%(k + 1),如果等于0,先手输,否则先手必胜!

#include<bits/stdc++.h> using namespace std; int main() { int n, k, t; cin>>t; while(t--){ cin>>n>>k; if((n - 1) % (k + 1) == 0) cout<<"ma la se mi no.1!\n"; else cout<<"yo xi no forever!\n"; } return 0; } E-Seek the Joker II 题目描述

长达数日的春日祭终于告一段落,作为巫女的朝野芳乃在打扫完神社本决定好好享受一下久违的宁静。然而守护了神刀数百年的丛雨难耐寂寞,希望芳乃能陪她一起玩扑克消解愁闷。

芳乃并不擅长市井的游戏,所以总是输多赢少。而昨日被芳乃的神乐舞深深吸引,以致一早就前来建实神社希望能再睹芳华的你碰巧听见了此事。尽管不知道为什么美丽的巫女要自言自语地为玩扑克而苦恼,但你毅然决然地毛遂自荐,希望能为芳乃一解眉间愁。

芳乃告诉了你丛雨准备了n张扑克牌作为牌堆,自牌顶向下数第x张牌作为乌龟,即“乌龟”的上方有x-1张牌,“乌龟”的下方有n-x张牌,抽中“乌龟”的将输掉这一轮比赛。每人每次可以同时在牌堆顶和牌堆底或者仅在牌堆顶或牌堆底其抽取任意张牌,至少抽1张牌。但若选择同时在牌堆顶和牌堆底抽牌,则抽牌数量需要相同。芳乃想知道在你的帮助下,她和丛雨都采取积极策略时,她自己是否一定能获胜。作为被丛雨邀请的一方,每轮游戏都是芳乃先抽。

因为看不见丛雨而误认芳乃罹患精神分裂的你在不由感叹红颜薄命的同时,决定尽全力帮助芳乃完成她的委托。

声明:本题中的所有角色在剧情发生时均已超过18岁。

题意:

n张牌,抽走第x张牌的输,第x张牌叫乌龟,乌龟上面有x-1张牌,乌龟下面有n-x张牌。每人每次抽排有两种方法,一是在上面或下面抽大于0的任意张牌,二是同时在上面和下面抽相同数目张牌。

思路:

威佐夫博弈。

我现在将这个题换个描述方式:有两堆牌,一堆有n-x张牌,另一堆有x-1张牌,取完最后一张的人赢。(因为取完最后一张,对手就可以取那张为在两堆牌内的乌龟了,所以你就赢了)

现在就很明显了,是威佐夫博弈,具体解释看我关于博弈论的一篇博客(虽然我就写了一半,懒得写下去了……手动狗头。

#include<bits/stdc++.h> using namespace std; typedef long long ll; int main() { int t, x, n; cin>>t; while(t--){ cin>>n>>x; int a = x - 1; int b = n - x; if(a > b) swap(a, b); if((int)((b - a) * (sqrt(5.0) + 1.0) / 2) == a) cout<<"ma la se mi no.1!\n"; else cout<<"yo xi no forever!\n"; } return 0; } F-成绩查询ing 题目描述

去年的新冠疫情爆发让众多大学生只能只能在家里上学,老师为了方便自己录入成绩和方便大家成绩查询,建立了一个录入和查询成绩的系统,能完成M次两种不同的查询,输入查询次数M,查询M次,每次首先输入查询的模式T,T为1时,输入同学的姓名Name,并依次输出同学的成绩Grade(0<=Grade<=100), 学号(0~1000000},性别(1/2),T为2时,输入成绩,输出有具体有哪些同学考到了这个分数,输出同学的Name,并要求按字典序输出,当没有同学为此分数时,则不输出。字典序,对于字符串,先按首字符排序,如果首字符相同,再按第二个字符排序,以此类推。

题意:

先录入学生的姓名成绩性别学号。然后进行m次查询,查询有两种情况,一种是输入姓名,输出成绩学号性别;另一种是输入成绩,输出有这个成绩的所有学生的名字,按字典序输出。

思路:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zgdgzx.html