说明 NY寒假有奖欢乐赛

类别 日常作业题目列表

考试规则 信息学奥赛规则

开始时间 2022/1/22 9:00:00

结束时间 2022/1/22 12:20:00

总时长 3小时 20分钟

参考人数 共 36 人进入, 35 人提交

提交限制 每题不超过 2 次 ←这是重点

题目 A 石头-布游戏 28 / 40 提交 | 状态 | 答疑
题目 B 货仓选址 28 / 46 提交 | 状态 | 答疑
题目 C 【分类练习3.贪心】智力大冲浪 15 / 28 提交 | 状态 | 答疑
题目 D 会飞的gjy 8 / 46 提交 | 状态 | 答疑
题目 E 选举 11 / 38 提交 | 状态 | 答疑
题目 F nodgd跑路 2 / 25 提交 | 状态 | 答疑
题目 G 恢复公路网 4 / 30 提交 | 状态 | 答疑
排名 用户名 总得分 总用时 A B C D E F G
1

chen_zhewch

超级大魔芋

723.8 669

100

[1]

100

[1]

100

[1]

100

[1]

100

[1]

125

[1]

98.8

[1]

2

aoliao

-*◐余奥林◑*-

723.8 3270

100

[1]

100

[1]

100

[1]

100

[1]

100

[2]

125

[1]

98.8

[1]

3

Chara

Eulerclid-Theory

598.8 1244

100

[1]

100

[1]

100

[1]

100

[3]

100

[2]

0

[1]

98.8

[1]

4

liyixi

李奕希

555.4 201

100

[1]

100

[1]

100

[1]

100

[4]

0

[2]

125

[1]

30.4

[1]

5

xfh1

Odin

543.8 885

100

[1]

100

[1]

100

[1]

40

[2]

100

[1]

5

[1]

98.8

[1]

6

yuqiancheng1

Administrator

505 0

100

[1]

100

[2]

100

[1]

100

[1]

100

[1]

5

[1]

7

zhengyixuan

郑意轩

500 15

100

[1]

100

[1]

100

[1]

100

[1]

100

[2]

0

[2]

8

cuiliyang

^_^

430.4 1261

100

[1]

100

[1]

100

[1]

100

[2]

0

[2]

30.4

[1]

9

Rain

٩(๑>◡<๑)۶

425.4 0

100

[1]

100

[1]

100

[1]

90

[1]

0

[2]

5

[1]

30.4

[2]

10

Qingliu

a fifteen的健人罗健榕

420.4 280

100

[1]

100

[1]

100

[2]

10

[1]

80

[2]

30.4

[1]

11

whs090119

万叶の友人

420 93

100

[1]

100

[1]

100

[1]

20

[1]

100

[1]

12

XZRSEVEN

徐子然

418 0

100

[1]

100

[1]

0

[2]

80

[2]

100

[1]

0

[1]

38

[2]

13

heaker

魏嘉仪

412.4 0

72

[1]

100

[1]

100

[1]

10

[2]

40

[1]

60

[1]

30.4

[1]

14

lubenwei

55555伍思卓55555

360.4 93

100

[2]

100

[2]

0

[2]

30

[2]

100

[2]

30.4

[1]

15

zpqzpq

钟沛其

350.4 0

100

[2]

100

[2]

100

[2]

10

[3]

10

[2]

0

[3]

30.4

[1]

16

YJC423264

Dream

345.4 0

100

[1]

100

[1]

100

[1]

10

[2]

5

[2]

30.4

[1]

17

libolin1

? ? ?

342.8 295

100

[1]

100

[1]

0

[1]

20

[1]

100

[1]

22.8

[2]

18

zhuchuyu

zcy

340.4 404

100

[2]

100

[1]

100

[2]

10

[1]

30.4

[1]

19

lucky_sky

lucky

330.4 15

100

[1]

100

[1]

100

[2]

30.4

[2]

20

LUO1103

罗培淋

330.4 234

100

[1]

100

[1]

100

[1]

30.4

[1]

21

huangyucheng123

私は神である

300.4 295

40

[2]

100

[2]

100

[2]

10

[1]

20

[1]

30.4

[1]

22

lijiaxin

-

280 0

100

[1]

100

[1]

20

[1]

0

[1]

60

[2]

23

Jarvis

Ralsei

266.4 0

36

[2]

100

[2]

100

[2]

0

[1]

30.4

[1]

24

yhx123

杨瀚翔

260.4 30

100

[1]

100

[2]

20

[1]

10

[2]

30.4

[1]

25

lijiale

༺༒[100%]༒༻

250.4 0

100

[1]

0

[2]

100

[1]

10

[2]

10

[2]

0

[2]

30.4

[1]

26

liwenbo

李文博

250 296

60

[2]

100

[1]

0

[1]

90

[1]

0

[1]

27

xyxy

赵一帆

240.4 202

100

[1]

100

[1]

10

[1]

0

[1]

30.4

[1]

28

stevein

Newuser.

217.6 310

100

[2]

100

[2]

0

[1]

10

[2]

0

[2]

7.6

[2]

29

yanghaoran

杨浩然

200 0

100

[1]

100

[1]

30

YRY.

杨蕊语

160 0

100

[2]

60

[1]

31

syc1

时逸岑

140.4 0

100

[1]

0

[2]

10

[1]

30.4

[2]

32

Morax_whs

Morax

120 0

20

[2]

100

[2]

33

cheng_xi

程茜

110 15

100

[1]

0

[2]

10

[1]

0

[2]

34

xkeyu

熊柯宇

100 0

100

[2]

35

Herobrine

ZHT

100 311

100

[2]

A石头-布游戏
时间限制 : - MS   空间限制 : - KB 
评测说明 : 1s 256MB

问题描述

AK_IOI和AK_NOIP两位同学正在玩一个游戏,这个游戏一共局。每一局,每一个玩家可以用手出“石头”和“布”两个手势之一,与“石头剪刀布”游戏类似,即出”布“的玩家赢出“石头”的玩家。为了防止某位同学耍赖,特增加一个规则:局游戏玩完后,玩家出布的次数的次数  玩家出石头的次数。另外,每一个玩家的分数等于玩家赢的次数这个玩家输的次数。

由于AK_IOI同学具有预知未来10秒的能力,所以他每次都能预知AK_NOIP同学的手势,请制定计划让AK_IOI同学的分数最大化。

AK_NOIP同学在每一局中的手势将用字符串来表示,如果中的第个字母是,则表示在第局比赛中,他出”石头“,同样,如果中的第个字母是,则表示在第局比赛中,他出”布“。

输入格式

输入的第一行包括一个字符串,长度为,由字母和组成。

输出格式

输出AK_IOI的最大可能分数

样例输入 1

gpg

样例输出 1

0

样例输入 2

ggppgggpgg

样例输出 2

2

提示

样例一: 每一轮与对手手势相同,将得到最大可能分为0.

样例二: AK_IOI可以按照下面顺序出手势:石头、布、石头、布、石头、石头、布、布、石头、布。可以赢3局输1局。得分为2。

#include<bits/stdc++.h>
using namespace std;string a;
int gp[3],tot,len;
int g,p;
int win,lose;int main(){cin>>a;len=a.length();a=' '+a;for(int i=1;i<=len;i++){if(a[i]=='g')gp[1]++;else gp[2]++;tot++;}// G > Pif(tot%2==0){g=tot/2;p=tot/2;}else{p=tot/2;g=p+1;}for(int i=1;i<=len;i++){if(a[i]=='g'){if(p>0)p--,win++;}else{if(p>0)p--;else lose++;}}cout<<win-lose;
}
B货仓选址
时间限制 : - MS   空间限制 : - KB 
评测说明 : 1s 256MB

问题描述

在一条数轴上有  家商店,它们的坐标分别为  。现在需要在数轴上建立一家货仓,每天清晨,从货仓到每家商店都要运送一车商品。为了提高效率,求把货仓建在何处,可以使得货仓到每家商店的距离之和最小。

输入格式

第一行一个整数  ,第二行  个整数  。

输出格式

一个整数,表示距离之和的最小值。

样例输入

4
6 2 9 1

样例输出

12

#include<bits/stdc++.h>
#pragma GCC optimize(3,"Ofast","inline")
using namespace std;
int n,a[100005],p,ans;
int main() {ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);cin>>n;for(int i=1; i<=n; i++)cin>>a[i];sort(a+1,a+1+n);p=a[n/2];for(int i=1;i<=n;i++)ans+=abs(p-a[i]);cout<<ans;
}
//AC 
C【分类练习3.贪心】智力大冲浪
时间限制 : 10000 MS   空间限制 : 65536 KB

问题描述

小伟报名参加中央电视台的智力大冲浪节目。本次挑战赛吸引了众多参赛者,主持人为了表彰大家的勇气,先奖励每个参赛者m元。先不要太高兴!因为这些钱还不一定都是你的?!接下来主持人宣布了比赛规则:

首先,比赛时间分为n个时段(n≤500),它又给出了很多小游戏,每个小游戏都必须在规定期限ti前完成(1≤ti≤n)。

如果一个游戏没能在规定期限前完成,则要从奖励费m元中扣去一部分钱wi,wi为自然数,不同的游戏扣去的钱是不一样的。当然,每个游戏本身都很简单,保证每个参赛者都能在一个时段内完成,而且都必须从整时段开始。主持人只是想考考每个参赛者如何安排组织自己做游戏的顺序。

作为参赛者,小伟很想赢得冠军,当然更想赢取最多的钱!注意:比赛绝对不会让参赛者赔钱!

输入格式

共4行。

第1行为m,表示一开始奖励给每位参赛者的钱;

第2行为n,表示有n个小游戏;

第3行有n个数,分别表示游戏1到n的规定完成期限;

第4行有n个数,分别表示游戏1到n不能在规定期限前完成的扣款数。

输出格式

仅1行。表示小伟能赢取最多的钱。

样例输入

10000
7
4 2 4 3 1 4 6
70 60 50 40 30 20 10

样例输出

9950

#include<bits/stdc++.h>
#pragma GCC optimize(3,"Ofast","inline")
using namespace std;
int m,n;
struct node {int num;int time;int monney;
} a[505];
bool f[505];
int ti,ans,res,re;bool cmp(node a,node b) {if(a.time==b.time)return a.monney>b.monney;else return a.time<b.time;
}int main() {ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);cin>>m>>n;for(int i=1; i<=n; i++) {a[i].num=i;cin>>a[i].time;}for(int i=1; i<=n; i++) {cin>>a[i].monney;}sort(a+1,a+1+n,cmp);for(int i=1; i<=n; i++) {//cout<<a[i].time<<" "<<a[i].monney<<endl;ti++;//cout<<ti<<endl;if(ti>a[i].time) {res=a[i].monney;re=0;for(int j=1; j<i; j++) {if(f[j]==0&&a[j].monney<=res)res=a[j].monney,re=j;}//cout<<i<<" "<<re<<" "<<res<<endl;f[re]=1;ans+=res;ti--;//cout<<ans<<endl;}}cout<<m-ans;
}
//AC 
D会飞的gjy
时间限制 : - MS   空间限制 : - KB 
评测说明 : 1s 256MB

问题描述

gjy同学某天来到了一条笔直的公路上,他在这条公路上拥有可以飞的超能力。

飞行的规则如下:公路被分为了n段,分别编号为1到n。

对于1<=i<=n,第i个段上有一个正整数Xi。当他处于第a段公路时,他可以选择往前飞Xa段,或者往后倒退Xa段。当然如果Xa+a>n,那么他就只能选择后退;同理如果a-Xa<1,那么他就只能选择前进。保证不会出现既不能前进又不能后退的情况。

现在需要你判断:从编号s出发,至少需要经过几把,可以到达t号点?(例如在a点选择往前走Xa步,称之为一把)。

输入格式

第一行三个整数,分别为n,s,t意义如题面所述。

第二行n个正整数,第i个数为Xi。

输出格式

一个数,为最少经过的把数。如果s无法到达t,输出-1。

样例输入

6 6 4
1 2 2 3 1 2

样例输出

1

提示

对于前10%的数据,s=t;

对于前40%的数据,n<=200;

对于另外10%的数据,s无法到达t;

对于100%的数据,n<=200000;

//一个很暴力的做法,能上或者能下就走一遍,如果进入死循环就输出-1
//当时没想出如何跳出...
#include <bits/stdc++.h>
#pragma GCC optimize(3,"Ofast","inline")
#define ll long long
using namespace std;
ll n,k,temp,l=1,s,t;
ll ans[1000001],s2[1000001];
bool flag=1;
inline op() {while(ans[t]==-1&&flag) {flag=0;for(ll i=1; i<=n; i++) {if(ans[i]==temp) {k=i+s2[i];if(k<=n&&ans[k]==-1) {flag=1;ans[k]=temp+1;}k=i-s2[i];if(k>=1&&ans[k]==-1) {flag=1;ans[k]=temp+1;}}}temp++;}
}
int main() {ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);cin>>n>>s>>t;for(ll i=1; i<=n; i++) {ans[i]=-1;cin>>s2[i];}ans[s]=0;op();cout<<ans[t];
}
//AC 

#include <bits/stdc++.h>
#pragma GCC optimize(3,"Ofast","inline")
#define ll long long
using namespace std;ll n,b[1001],w[1001],ans;int main() {ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);cin>>n;for(int i=1; i<=n; i++) {cin>>b[i]>>w[i];if(i>=2) {ll j=max((b[i-1]+b[i]-1)/b[i],((w[i-1]+w[i]-1)/w[i]));if(b[i]*j>=b[i-1]&&w[i]*j>=w[i-1]) {b[i]=b[i]*j;w[i]=w[i]*j;}}}cout<<b[n]+w[n];
}
//AC
F nodgd跑路
时间限制 : 1000 MS   空间限制 : 65536 KB

问题描述

nodgd位于一个 H*W的棋盘的左上角格子,每次只能向右或者向下移动一格。

棋盘的最左下方的A*B 个格子不能走,有多少种方法可以走到右下角的格子?答案  mod  10^9+7。

输入格式

输入一行四个整数  H W A B。

输出格式

输出一个整数答案。

样例输入 1

2 3 1 1

样例输出 1

2

样例输入 2

10 7 3 4

样例输出 2

3570

提示

样例1解释
棋盘如下所示, . 表示可以走, # 不能走。两种方式分别是“右右下”和“右下右”。

/*
...
#..
*/#include <bits/stdc++.h>
#pragma GCC optimize(3,"Ofast","inline")
#define ll long long
using namespace std;
const int N=2e5,mod=1e9+7;
int fact[N+10],infact[N+10],inf[N+10];
int C(int a,int b) {return 1ll*fact[a]*infact[a-b]%mod*infact[b]%mod;
}
int h,w,a,b,ans;
int main() {ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);for(int i=0; i<2; i++)fact[i]=inf[i]=infact[i]=1;for(int i=2; i<=N; i++) {inf[i]=1ll*(mod-mod/i)*inf[mod%i]%mod;infact[i]=1ll*infact[i-1]*inf[i]%mod;fact[i]=1ll*fact[i-1]*i%mod;}cin>>h>>w>>a>>b;a=h-a;for(b++; a>=1&&b<=w; a--,b++)ans=(1ll*ans+1ll*C(a+b-2,a-1)*C(h-a+w-b,h-a)%mod)%mod;cout<<ans;return 0;
}
G恢复公路网
时间限制 : - MS   空间限制 : 262144 KB

问题描述

在传说中的天国里,有座n城市,在一些城市之间,通过双向道路相连,这些道路都有各自的长度,且是整数。天国里不同城市的人们交往只能通过这些双向道路,如果两座城市没有直达道路,但可以在某座城市中转一下也是可以交往的。

一张可能代表了城市之间的最短距离的表格落入到你的手中,表格有n行m列,其中u第行、第v列的 A(u,v) 整数指的是城市到城市的最短路径长度。你先假设表中的数据都是正确的,根据表格中的信息来推断一下天国的公路网,如果能推出公路网,说明表格中的数据是没错的,并输出这张公路网的最小总长度(所有道路之和)。如果无论如何也无法推出公路网,那说明表格中的数据可能不准确,公路网不存在,输出-1。

输出格式

如果能推出公路网,说明表格中的数据是没错的,并输出这张公路网的最小总长度(所有道路之和)。如果无论如何也无法推出公路网,那说明表格中的数据可能不准确,公路网不存在,输出-1。

样例输入 1

3
0 1 3
1 0 2
3 2 0

样例输出 1

3

样例输入 2

3
0 1 3
1 0 1
3 1 0

样例输出 2

-1

样例输入 3

5
0 21 18 11 28
21 0 13 10 26
18 13 0 23 13
11 10 23 0 17
28 26 13 17 0

样例输出 3

82

样例输入 4

3
0 1000000000 1000000000
1000000000 0 1000000000
1000000000 1000000000 0

样例输出 4

3000000000

#include <bits/stdc++.h>
#pragma GCC optimize(3,"Ofast","inline")
using namespace std;
int n;
long long a[301][301];
bool cmp[301][301];
long long floyd() {long long ans=0;for(int i=1; i<=n; i++) {for(int j=1; j<=n; j++) {if(i==j)continue;for(int k=1; k<=n; k++) {if(k==i||k==j)continue;if(a[j][i]+a[i][k]<a[j][k])return -1;if(a[j][i]+a[i][k]==a[j][k])cmp[j][k]=1;}}}for(int i=1; i<=n; i++) {for(int j=i+1; j<=n; j++) {if(!cmp[i][j]) {ans+=a[i][j];}}}return ans;
}int main() {scanf("%d",&n);for(int i=1; i<=n; i++)for(int j=1; j<=n; j++)scanf("%lld",&a[i][j]);printf("%lld",floyd());
}

[NKNY]寒假培训《NY寒假有奖欢乐赛 》总结相关推荐

  1. 大一寒假培训(三)——暴力枚举及妙用

    大一寒假培训(三) 经过两天的培训之后,第三天也到来了.今天讲的是暴力枚举.好像没什么可讲的(悄咪咪地说) 接下来还是今天的练习 nefu 8 二倍的问题 Description 给定2到15个不同的 ...

  2. 大一寒假培训(二)——快排与桶排

    大一寒假培训(二) 今天是寒假培训的第二天,今天学了快排和桶排.以下是今天做的习题. nefu 1481 谁考了第k名-排序 Description 在一次考试中,每个学生的成绩都不相同,现知道了每个 ...

  3. java寒假培训总结

    前言 java寒假培训大概分了这几个板块 认识java 简单的java程序 Java基础程序设计 数组与方法 面向对象编程 提示:以下是本篇文章正文内容,下面案例可供参考 一.认识java 1.介绍j ...

  4. 2019BNUZ_ACM国庆欢乐赛题解

    目录 题目来源 : A.小沛的暑假安排 B.nsy上幼儿园 C.nsy上小学 D.怡姐的游戏 E.如风般奔跑 F.cjb找朋友 G. 黑魔仙wgc的攻击 H. 皓洲喜欢经纬线 I. 小枫买车 J. 单 ...

  5. 【题解】Comet OJ 夏季欢乐赛(2019)A 完全k叉树⭐⭐ 【思维】

    Comet OJ 夏季欢乐赛(2019)A 完全k叉树⭐⭐ 欢迎报考JWJU!这里有丰富的社团活动,比如为梦想奋斗的ACM集训队,经常组织飞行棋的桌游协会,喜欢"唱,跳,rap,篮球&quo ...

  6. 综合-某假期欢乐赛 (Apri, 2018)

    假期欢乐赛,确实挺轻松的,被逼迫写了题解. A.推数 按列观察,有的列有多个格子,看起来好复杂啊,先放一放. 按行观察,黑色格子在 i 行 j 列: 当 i 是奇数,对应数字第 i 位是 j-1 当 ...

  7. Comet OJ - 2019国庆欢乐赛(赛后整理)

    Comet OJ - 2019国庆欢乐赛(赛后整理) 比赛链接:传送门 PS: 做题失误: A题wa了好久不知道为什么,后来才知道乘法爆long long了 B题思路错了,应该在想清楚些. 比赛过程中 ...

  8. BNUZ-ACM 2019国庆新生欢乐赛 E.如风般奔跑(题目详解+代码)

    原题链接:BNUZ-ACM 2019 E.如风般奔跑 BNUZ-ACM 2019国庆新生欢乐赛 E.如风般奔跑 题目 题目大意 这题题目的大意是:给你一个800米的环形跑道以及小陈和小张的速度,问你什 ...

  9. BNUZ-ACM 2018国庆新生欢乐赛部分题解+思路(已解出答案部分)

    由于时间不足,本人在新生赛仅浏览了四题,其中两题完全通过. 下面是已解出的一题,供比对和取优. A. 三角恋 下面贴上原题: 我的思路: 首先需要一个while(scanf)循环,以供测试器循环测试各 ...

最新文章

  1. (总结)CentOS 6.x使用yum快速安装Apache+PHP+Tomcat(JSP)+MySQL
  2. PostgreSQL — Prepared Statement 预编译
  3. 曾经成功的敏捷团队为什么失败?
  4. 调用startActivityForResult后,onActivityResult立刻回调
  5. php pdo预处理查询,关于php:从PDO预处理语句中获取原始SQL查询字符串
  6. SqlDataAdapter和SqlCommandBuilder删除数据
  7. jfinal文件上传
  8. 西门子smartclient怎么用_西门子官方应用Sm@rtClient Lite APP
  9. linux 编译src.rpm,CentOS6.5下编译src.rpm包的内核
  10. 定义下一代存储,打造全新一代数据基础设施
  11. 不学无数——适配器模式
  12. esp32语音播放天气预报
  13. 无线音箱解决方案开发过程
  14. Win系统设置虚拟内存
  15. 基于遗传算法的神经网络,遗传算法训练神经网络
  16. 设置共享文件夹在主机与本地VMware虚拟机之间传输文件
  17. 用户态协议栈之tcp/ip设计
  18. SQL语句如何精准查找某一时间段的数据
  19. Java艺术字图片生成
  20. CVE(2017-15715、2021-41773、2021-40438)漏洞复现

热门文章

  1. nacos配置完成后,启动不成功,页面打不开
  2. 深度学习训练遇到的坑(一)
  3. python 函数式编程及递归
  4. Android 移植iperf3.13 测试网络
  5. 20款前端特效动画及源码
  6. Non-local Neural Networks论文理解
  7. C++顺序结构——小玉买文具
  8. 人像摄影长焦镜头拍摄攻略
  9. 电路其他基本元器件(蜂鸣器、晶振等)
  10. practice是什么意思_practice 是什么意思