北京师范大学第十六届程序设计竞赛决赛-重现赛acfgi(代码片段)

starry starry     2022-11-07     503

关键词:

A 塞特斯玛斯塔

题目描述

 

quailty是一名狂热的ACM音游选手,沉迷各种音乐游戏,比如Lunatic Rave 2,osu!之类的。

今天,quailty玩的是国内游戏厂商雷亚(并不是赞助商)出品的一款音乐游戏Cytus。

游戏中,玩家需要随着游戏界面中上下移动的扫描线来适时演奏对应音符。

技术分享图片

当上下移动的黑色线(扫描线)与圆形的物体(音符)的圆心重合时点击音符。

普通音符(图中第一种)只需点击即可。

锁链音符(图中第二种)将带箭头的音符(滑块)按下后不要松开,并将滑块沿着斜线和圆点组成的路径拖动,直至拖动到最后一个圆点处方可松开。注意拖动过程中应保持滑块圆心始终与扫描线重合。

长按音符(图中第三种)按下后不要松开,原地不动,等扫描线到达其末端并显示判定结果后方可松开。

Cytus共有五种判定,从好到坏依次为:彩PERFECT、黑PERFECT、GOOD、BAD、MISS。

得分中包括了90%的“判定分”和10%的“连击分”,而连击分是累进计算的,断COMBO对其影响很大,往往只要有1个MISS就会损失几万的连击分。

彩PERFECT和黑PERFECT在计算得分时一视同仁,只要全部PERFECT即可获得满分,满分为1000000,被称为MILLION Master。

quailty真的很严格,如果打完一把没有拿到MILLION Master,他就认为自己是NAIVE Noob。

现在给你quailty打出的判定序列,请你输出这次游戏的评价是MILLION Master还是NAIVE Noob。


输入描述:

第一行是一个正整数T ( 1 ≤ T ≤ 5 ),表示测试数据的组数,
每组测试数据,第一行是一个正整数n ( 1 ≤ n ≤ 100000 ),表示该组测试数据包含的判定数。接下来的n行,每行包含"PERFECT"、"GOOD"、"BAD"、"MISS"之中的一个字符串,表示quailty打出的一个判定。

输出描述:

对于每组数据,输出一行,包含一个字符串,表示这次游戏的评价。
示例1

输入

2
5
PERFECT
PERFECT
PERFECT
PERFECT
PERFECT
10
PERFECT
MISS
PERFECT
BAD
BAD
GOOD
BAD
GOOD
GOOD
MISS

输出

MILLION Master
NAIVE Noob

签到题

 

 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 
 4 int main() 
 5     int n, t;
 6     cin >> t;
 7     while(t--) 
 8         cin >> n;
 9         string s;
10         bool flag = true;
11         while(n--) 
12             cin >> s;
13             if(s != "PERFECT") flag = false;
14         
15         if(flag) printf("MILLION Master\n");
16         else printf("NAIVE Noob\n");
17     
18     return 0;
19 

 

C 萌萌哒身高差

题目描述

 

“清明时节雨纷纷,路上行人欲断魂。”

然而wfy同学的心情是愉快的,因为BNU ACM队出去春游啦!并且,嗯。。。

以下是wfy同学的日记:

昨天,何老师告诉我们:明天我们去春游,大家准备好喝的和吃的哦!
大家听了都兴奋起来,有的欢呼,有的鼓掌,开心得不得了。第二天,我们早早地来到学校,迫不及待地上了车,来到了公园。一进门,啊,太美了!公园中有那么多树,有高有矮,有粗有瘦,密密的,在春风吹拂下轻轻摇摆着,像是欢迎我们的到来。公园中有那么多的鲜花,有红有黄,有紫有白,散发着淡淡的清香,闻得我们都醉了。公园的边角上有一条清澈的小河,河水缓缓地流淌着,可以看到水里的鱼儿在快活地游来游去,多自在啊!水草碧绿碧绿的,多新鲜啊!小河的旁边是一片小树林,远远望去一片鲜绿。我们在里面吃东西、做游戏、捉迷藏,玩得疯极了。树林的后面是连绵起伏的小山坡,蜿蜿的真像一条游动的蛇。当然,我觉得公园的天空也很美。它万里无云,一碧如洗,很清澈。小鸟在展翅飞翔,它们形态各异,一会儿上升,一会儿下滑,一会儿吃虫,一会儿在小树林里休息,非常悠闲。快乐时光总是那么短暂,很快,天色就昏暗了。我们依依不舍地上了车,回到了学校,我真希望明年的春天还能再来看看这美丽的公园。
回到学校后,何老师说:请大家排成一排,我们来拍照片啦!
何老师特别喜欢萌的东西,比如**,比如****,等等。
何老师认为,同学们站成一排时,相邻两个同学身高相差越多,这两个同学站在一起越萌。
那么所有相邻两个同学的身高差加起来越大,拍出来的照片就越萌,也就是这张照片的萌力指数。
何老师希望拍出来的照片的萌力指数尽可能大。
然而何老师并不是数学老师,而是语文老师。何老师觉得很GG。
何老师只想知道,如果让同学们随便站成一排(站成所有排列的可能性都相等),萌力指数的数学期望是多少。
聪明的我一下子就算出了答案,然后何老师就奖励了我一个很萌的礼物。
今天真的好开心。

BNU ACM队共有n名同学,身高分别是技术分享图片,聪明的你能计算出何老师想要的数学期望吗?

输入描述:

第一个是一个正整数T(T ≤ 20),表示测试数据的组数,
每组测试数据只有一行,包含一个整数n(2 ≤ n ≤ 100)。

输出描述:

对于每组测试数据,输出一行,包含一个实数,表示萌力指数的数学期望值,要求相对误差不超过技术分享图片

也就是说,令输出结果为a,标准答案为b,若满足技术分享图片,则输出结果会被认为是正确答案。

示例1

输入

2
2
3

输出

1.000000000000
2.666666666667

说明

对于第二组样例,所有可能的排列是[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1],所以答案是
技术分享图片
 
找规律
 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 int a[110];
 4 int main() 
 5     int t, n;
 6     cin >> t;
 7     while(t--) 
 8         cin >> n;
 9         printf("%.12f\n",1.0*(n*n-1)/3.0);
10     
11     return 0;
12 

 

 F 汤圆防漏理论

题目描述

ghc很喜欢吃汤圆,但是汤圆很容易被粘(zhān)漏。

根据多年吃汤圆经验,ghc总结出了一套汤圆防漏理论:

互相接触的汤圆容易粘(zhān)在一起,并且接触面积不同,粘(zhān)在一起的粘(nián)度也不同。

当ghc要夹起一个汤圆时,这个汤圆和现在碗里与这个汤圆接触的所有汤圆之间的粘(nián)度的和,如果大于汤圆的硬度,这个汤圆就会被粘(zhān)漏。

今天ghc又要煮汤圆啦,今天要煮n个汤圆,并且摆盘的方法已经设计好:

汤圆按照技术分享图片编号,有m对汤圆互相接触,用xi, yi, zi表示编号为xi和yi的两个汤圆互相接触,粘(nián)度为zi

汤圆当然是越软越好吃,但是ghc的厨艺只允许把所有汤圆煮成同样的硬度。那么,汤圆的硬度最小可以是多少,可以满足吃的过程中,存在一种夹汤圆的顺序,使得没有汤圆会被粘(zhān)漏呢?

注意:

不考虑汤圆的重力作用;

不能同时夹多个汤圆;

吃完汤圆一定要喝点汤。

输入描述:

第一行是一个正整数T(≤ 5),表示测试数据的组数,

对于每组测试数据,

第一行是两个整数n,m(1≤ n,m≤ 100000),

接下来m行,每行包含三个整数xi, yi, zi(1≤ xi, yi ≤ n, xi ≠ yi, 1 ≤ zi ≤ 1000000),

同一对汤圆不会出现两次。

输出描述:

对于每组测试数据,输出一行,包含一个整数,表示汤圆硬度的最小值。
示例1

输入

1
4 6
1 2 2
1 3 2
1 4 2
2 3 3
2 4 3
3 4 5

输出

6

每次把权值和最小的吃掉。然后没吃掉的话把吃掉的那个减掉。用set维护。
 1 #include <bits/stdc++.h>
 2 #define ll long long
 3 using namespace std;
 4 const int N = 1e5+10;
 5 typedef pair<ll, ll> P;
 6 vector<P> vs[N];
 7 bool vis[N];
 8 set<P> st;
 9 ll a[N], n, m, t;
10 int main() 
11     ios::sync_with_stdio(false);
12     cin >> t;
13     while(t--) 
14         cin >> n >> m;
15         for(int i = 1; i <= m; i ++) 
16             ll u, v, w;
17             cin >> u >> v >> w;
18             a[u] += w;
19             a[v] += w;
20             vs[u].push_back(P(v,w));
21             vs[v].push_back(P(u,w));
22         
23         for(int i = 1; i <= n; i ++) 
24             st.insert(P(a[i], i));
25         
26         ll ans = 0;
27         for(int i = 1; i <= n; i ++) 
28             ll u = st.begin()->second;
29             st.erase(st.begin());
30             ans = max(ans,a[u]);
31             vis[u] = 1;
32             for(int j = 0; j < vs[u].size(); j ++) 
33                 ll v = vs[u][j].first, w = vs[u][j].second;
34                 if(!vis[v])
35                     st.erase(P(a[v],v));
36                     a[v] -= w;
37                     st.insert(P(a[v],v));
38                 
39             
40         
41         cout << ans << endl;
42         for(int i = 1; i <= n; i ++) 
43             vs[i].clear();
44         
45         st.clear();
46         memset(vis, 0, sizeof(vis));
47         memset(a, 0, sizeof(a));
48     
49     return 0;
50 

G 命名规范问题

题目描述

驼峰命名法是起变量名的一种规范,大致来说是用混合的大小写字母来构成变量名,在这个问题里你可以假设具体规则如下:

1.每个变量名由至少2个单词拼接构成,且每个单词长度至少为2;

2.每个单词的首字母必须大写,其他位置必须小写(除了变量名的第一个单词允许全部小写外)。

 

但是SK同学的英语很差,看到长长的变量名就很难脑补出是由哪些单词组成的,因此看驼峰命名法的代码十分头疼。

还有一种下划线命名法,规则比较简单,即各个单词之间用下划线‘_‘连接,且字母全部小写。

现在给你一些变量名,你能将其中符合驼峰命名法规范的变量转换成下划线命名法吗?

 

输入描述:

第一行是一个正整数T(≤ 20000),表示测试数据的组数,
每组测试数据只有一行,包含一个仅包含大小写英文字母且长度不超过20的变量名,
保证所有测试数据变量名长度总和不超过200000。

输出描述:

对于每组测试数据,输出一行,包含一个字符串,如果变量名符合驼峰命名法规范则将其改为下划线命名法,否则不变。
示例1

输入

10
mystring
myString
String
SS
my
mySString
mString
STRING
StrinG
IndexOfString

输出

mystring
my_string
String
SS
my
mySString
mString
STRING
StrinG
index_of_string


模拟题,两个大小字母在一起,最后一个字母是大写,只有一个单词 都不符合驼峰命名法规范,直接输出。其它就转换下。
 1 #include <bits/stdc++.h>
 2 #define ll long long
 3 using namespace std;
 4 
 5 int main() 
 6     int t;
 7     cin >> t;
 8     string s;
 9     while(t--) 
10         cin >> s;
11         bool flag = true;
12         int index = 0, ans = 1;
13         for(int i = 1; i < s.length(); i ++) 
14             if(s[i] >= A && s[i] <= Z && i == index + 1) 
15                 flag = false;
16                 break;
17              else if(s[i] >= A && s[i] <= Z) index = i, ans++;
18         
19         if(ans == 1||!flag || (index==s.length()-1)) cout << s << endl;
20         else 
21             for(int i = 0; i < s.length(); i ++) 
22                 if(s[i] >= A && s[i] <= Z && i != 0) 
23                     printf("_%c",s[i]+32);
24                  else if(s[i] >= A && s[i] <= Z && i == 0)
25                     printf("%c",s[i]+32);
26                 else cout << s[i];
27             
28             cout << endl;
29         
30     
31     return 0;
32 

I 如何办好比赛

题目描述

又到了一年一度的程序设计大赛了~
 
现在参赛选手在机房前排起了一列长队,这里面有萌新也有大佬,萌新都很仰慕大佬,由于大佬们的参赛,萌新们对这次比赛的精彩程度格外期待。对于每个萌新来说,他/她/它对本次的比赛的期待度为排在他/她/它前面的大佬的数量,而这次比赛的总期待度等于每个萌新的期待度之和。
 
SK同学作为本次比赛的组织者,希望比赛的期待度能够刚刚好,太低的话会让大家兴致不高,太高的话会被喷不满足预期。
 
现在SK同学可以交换任意相邻的两名参赛选手,但是比赛马上就要开始了,SK同学想知道最少要进行多少次交换才能使得这次比赛的总期待度刚好为k,你能帮帮他吗?

输入描述:

第一行是一个正整数T(≤ 10),表示测试数据的组数,
对于每组测试数据,
第一行是两个正整数n(≤ 1000000)和k(≤ 1000000000),分别表示队列长度和最终的比赛总期待度,
接下来一行包含n个字符,表示这个队列,第i个字符表示队列里的第i个人,‘D‘表示大佬,‘M‘表示萌新,保证不会出现其它字符。

输出描述:

对于每组测试数据,输出一行,包含一个整数,表示最少的交换次数,无解输出-1。
示例1

输入

2
3 1
DMM
3 3
DMM

输出

1
-1

先计算当前期待度是多少,答案就是他们的差了。
 1 #include <bits/stdc++.h>
 2 #define ll long long
 3 using namespace std;
 4 const int N = 1000010;
 5 char str[N];
 6 ll a[N];
 7 int main() 
 8     int t;
 9     cin >> t;
10     while(t--) 
11         ll n, k, ans = 0;
12         cin >> n >> k;
13         cin >> str+1;
14         for(int i = 1; i <= n; i ++) 
15             if(str[i] == D) 
16                 a[i] = 1;
17                 ans ++;
18             
19             a[i] += a[i-1];
20         
21         if(ans*(n-ans) < k) printf("-1\n");
22         else
23             ll cnt = 0;
24             for(int i = 1; i <= n; i ++) 
25                 cnt += str[i]==M?a[i]:0;
26             
27             cout << abs(k-cnt) << endl;
28         
29         memset(a,0,sizeof(a));
30         memset(str,0,sizeof(str));
31     
32     return 0;
33 

 

 

第十六届全国大学生智能汽车竞赛总决赛ai视觉组线上赛图片显示软件发布及线上赛注意事项(代码片段)

简介:本文对于第十六届全国大学生智能车竞赛视觉AI组线上比赛的识别任务软件以及相关比赛流程注意事项进行总结。关键词:智能车竞赛,视觉AI组 §01积分分值  根据第十六届全国大学生智能车竞赛线上比赛... 查看详情

2018北京师范大学第十六届程序设计竞赛决赛(代码片段)

 A  塞特斯玛斯塔>259877871#include<cstdio>2#include<cstdlib>3#include<cmath>4#include<cstring>5#include<string>6#include<set>7#include<map>8#inclu 查看详情

第十六届全国大学生智能汽车竞赛总决赛ai视觉组线上赛细则草案(代码片段)

简介:关于室内AI视觉组在线上比赛的特殊性,本文由逐飞起草的比赛细则给出了比赛过程的详细描述。关键词:智能车竞赛,室内视觉,线上比赛 §01比赛方式  由于AI视觉组的特殊识别任务,比如分... 查看详情

第十六届全国大学智能车竞赛东北赛区报名信息统计(代码片段)

简介:参加第十六届全国大学生智能车竞赛的东北赛区队伍将于参加全国总决赛队伍一样采用线上比赛的方式。本文根据承办东北赛区比赛的沈阳航空航天大学组委会统计信息给出了每个赛题组参赛队伍总数以及确认国赛队... 查看详情

第十六届全国大学生智能车竞赛全国总决赛名单-公示版(代码片段)

简介:本文给出了参加第十六届全国大学生智能车竞赛竞赛全国总决赛队伍名单产生办法与进入总决赛的队伍名单。此外,还有部分专项创新奖项名单以及三个创意组决赛名单将另行公告。第十六届智能车全国总决赛将... 查看详情

第十七届全国大学生智能汽车竞赛,我们来了(代码片段)

...数达300余人。智能车队指导老师张素杰、焦万铭、柯瑜及第十五届、十六届智能车队国赛领队及队员到场观摩指导。▲图1校内赛决赛集锦  北京科技大学天津学院第六届智能车校内赛秉承全国大学生智能汽车竞赛"立足培养... 查看详情

第十六届全国大学生智能汽车竞赛全国总决赛提交技术报告通知(代码片段)

 提交技术报告的通知   参加全国总决赛的竞速赛和创意赛的每支队伍必须提交竞赛车模制作技术报告。这个文档应在2021年8月25日前通过电子邮件发送给全国总决赛组委会。  1.全国总决赛组委会联系方式:联系人࿱... 查看详情

第十六届全国大学智能车竞赛全国总决赛竞速组别成绩与奖项

  正式文档将会在竞赛网站公布:smartcar.cdstm.cn §01成绩与奖项一、基础四轮组【表1-1基础四轮组成绩与奖项】序号赛区学校名称队伍名称指导老师1指导老师2参赛队员1参赛队员2参赛队员3弃赛情况总成绩奖项1浙江杭州电... 查看详情

第十四届华中科技大学程序设计竞赛决赛同步赛beautifulland(代码片段)

It’suniversallyacknowledgedthatthere’reinnumerabletreesinthecampusofHUST.NowHUSTgotabiglandwhosecapacityisCtoplanttrees.Wehaventreeswhichcouldbeplantinit.EachofthetreesmakesHUSTbeautifulwhichdetermine 查看详情

第十四届华中科技大学程序设计竞赛决赛同步赛

第十四届华中科技大学程序设计竞赛决赛同步赛ABeautyofTrees思维,带权并查集题意:长度为n的序列,没告诉你具体数是多少。只给出m个查询,表示区间[l,r]的异或和为k。但是第i个查询如果和前面的查询有矛盾,那就是错误的。... 查看详情

2017中国大学生程序设计竞赛-总决赛-重现赛(感谢哈工大)

昨天的CCPC杭州怎么说好的还是取消了,那么今天就来玩玩这个总决赛DogsandCagesTimeLimit:2000/1000MS(Java/Others)    MemoryLimit:65536/65536K(Java/Others)TotalSubmission(s):0    AcceptedSubmissi 查看详情

第十六届全国大学智能车竞赛技术报告与总决赛视频下载(代码片段)

...资料,下载链接 §01闭幕式回放一、闭幕式回放  第十六届智能车竞赛全国总决赛闭幕式通过线上举行。下面是闭幕式回复链接。▲图1.0闭幕回放▲图1.1闭幕式回放视频二、回 查看详情

第十六届全国大学生智能车竞赛线上总决赛比赛时间与直播链接(代码片段)

简介:全国大学生智能车竞赛2021年线上总决赛从8月20号正式开始了。本文汇聚了所有赛题组各个参赛队比赛时间安排以及B站直播链接信息。关键词:智能车竞赛,线上总决赛,B站直播 §01基础四轮0、比赛时间比... 查看详情

第十六届全国大学生智能车竞赛线上赛点赛道审核-华东赛区(代码片段)

简介:参加第十六届全国大学生智能车线上全国总决赛赛道设计与审核内容。关键词:智能车竞赛,线上比赛,赛道审核 §01赛道审核一、常熟理工学院1、单车拉力▲图1.1.1赛道设计与铺设图▲图1.1.2赛道设计与... 查看详情

第十六届全国大学生智能车竞赛全国总决赛线上比赛规范(代码片段)

简介:本文给出了第十六届全国大学生智能车竞赛全国总决赛线上比赛要求。关键词:智能车竞赛,全国总决赛,线上比赛 §01线上比赛一、背景介绍  全国大学生智能车第十六届竞赛在2021年暑期展开,新... 查看详情

第十六届全国大学智能车全国总决赛竞赛闭幕式(代码片段)

...在竞赛网站公布:smartcar.cdstm.cn §01组委会扩大会议第十六届全国大学生智能车智能车竞赛组委会将在8月24日晚上8:00召开第四次扩大会议,这也是本次比赛的最后一次扩大会议。一、参会人员参加会议的人员包括:中... 查看详情

第十六届全国大学智能车竞赛线上国赛部分队伍名单(除东北赛区之外)(代码片段)

简介:本文给出了第一轮参加线上比赛队伍信息汇总。总共包括了八个表格,分别用于组织线上比赛抽签过程所使用。关键词:智能车竞赛,线上总决赛,参赛队伍 §01基础四轮组学校名称队伍名称指导老师1... 查看详情

长春理工大学第十四届程序设计竞赛(重现赛)m.orxzone

链接:https://ac.nowcoder.com/acm/contest/912/M题意:DaenerysStormborn,风暴中出生的丹尼莉丝,theUnburnt,烧不死的,QueenofMeereen,弥林女王,QueenoftheAndalsandtheRhoynarandtheFirstMen,安达尔人,罗伊那人,和先民的女王,LordoftheSevenKingdoms,七国之主 查看详情