2021-11-27月赛题解
A - 可以教学姐画画嘛QAQ
题目:
众所周知,wy学姐心灵手巧,她最近在学习原画,立志往国风和赛博朋克风格发展。
绘画的工具是很重要哒!
于是思量再三+长期吃土后,她买了一支biulingbiuling~闪的魔法棒画笔,由于刚刚接触,wy学姐还没有领悟到其中的奥秘所在,她只会以普通画笔的方式去使用它。
wy学姐决定用它来练习画直线,于是她在平面直角坐标系中画出了如下的图形:
善于思考的wy学姐发现!她随手一画的图竟然是有点规则的!!OMG!!!
于是她决定考考你是否也发现了这个神奇美妙的规则,是否感悟到了数学的诱人的魅力和本质?
wy学姐会随机给出两个点,要求你算出连接两点的折线长度(即沿折线走的路线长度)。
输入:
第一个数是正整数N(≤100)。代表数据的组数。
每组数据由四个非负整数组成x1,y1,x2,y2;所有的数都不会大于100。
输出:
对于每组数据,输出两点(x1,y1),(x2,y2)之间的折线距离。注意输出结果精确到小数点后3位。
样例输入:
5 0 0 0 1 0 0 1 0 2 3 3 1 99 99 9 9 5 5 5 5
样例输出:
1.000 2.414 10.646 54985.047 0.000
思路:递推的思维。
#include<iostream>
#include<cmath>
using namespace std;int main()
{int i,n,x1,y1,x2,y2,d,c;double z,y,x,a[220];a[0]=0;for(i=1;i<=210;i++){a[i]=a[i-1]+sqrt(1.0*i*i+1.0*(i-1)*(i-1))+sqrt(1.0*i*i+1.0*i*i); }cin>>n;while(n--){cin>>x1>>y1>>x2>>y2;if(x1==0&&y1==0){x=0;}else{c=x1+y1-1;x=a[c]+sqrt(1.0*c*c+1.0*(c+1)*(c+1))+sqrt(1.0*x1*x1+1.0*(c+1-y1)*(c+1-y1));}if(x2==0&&y2==0){y=0;}else{c=x2+y2-1;y=a[c]+sqrt(1.0*c*c+1.0*(c+1)*(c+1))+sqrt(1.0*x2*x2+1.0*(c+1-y2)*(c+1-y2));}z=fabs(x-y);printf("%.3f\n",z);}return 0;
}
C - yh学长的养猪场
众所周知,yh学长 is very rich,他靠着玩超级大富翁的游戏富上加富,买下了地球的半座江山(另外半座他不想要啦!)。
Of course,yh学长啥都有,这其中当然也包括养猪场。
这天,yh学长正在养猪场里跟它们一起玩,他心血来潮点了个到:“花花、茉莉、小爱、仙子……???仙子呢?!Where are my dear Xianzi???!!!”
yh学长忽然发现名为“仙子”的小粉猪不见了!Oh no!这可是他最心爱的一头猪!!!
幸好yh学长在每只猪的身上都安装了高级GPS定位导航,通过智能腕表,他可以实时知道“仙子”的位置。
yh学长从一条直线上的一个点N (0 ≤ N ≤ 100,000) 开始,“仙子”在同一直线上的一个点K (0 ≤ K ≤ 100,000) 上。
yh学长迫不及待地想把“仙子”带回来,他决定现在就出发去找它。
可是作为一个 richer ,可选择的交通方式实在是太多了,到底要用什么交通方式去找呢?
yh学长想起“仙子”最爱的两个交通工具—— 南瓜老年代步车 以及 超级无敌霹雳豪华完美小巧简易宇宙飞船。
南瓜老年代步车南瓜老年代步车——yh学长可以在一分钟内从任何一点X移动到X-1或X+1两点。
超级无敌霹雳豪华完美小巧简易宇宙飞船超级无敌霹雳豪华完美小巧简易宇宙飞船——yh学长可以在一分钟内从任何X点移动到2*X点。
已知“仙子”在离家出走一段时间后就反悔了,
十分地想念yh学长(这就是双向奔赴吗(T▽T)磕到了磕到了ヾ(◍°∇°◍)ノ゙),
但它太累了,于是决定在原地不动等yh学长来找它。
请问yh学长至少需要多长时间才能把它找回来?
Input
第一行输入两个整数 N 和 K
Output
输出一个整数——yh学长至少花多长时间才能把“仙子”找回来?
Sample Input
5 17
Sample Output
4
Hint
yh学长到达“仙子”所在地的最快方法是沿着以下路径移动:5-10-9-18-17,这需要4分钟。
思路:
宽度优先搜索,(其实还不是很懂==)。
#include<iostream>
#include<cmath>
#include<map>
#include<queue>
using namespace std;typedef long long ll;
const int N = 1e5+5;bool vis[N];
int step[N];
queue<int> q;
int bfs(int n, int k)
{int head, next;q.push(n); step[n] = 0; vis[n] = true; while(!q.empty()){head = q.front(); q.pop();for (int i = 0; i < 3; ++i) {if(i == 0)next = head - 1;elseif(i == 1)next = head + 1;elsenext = head * 2;if(next < 0 || next >= N) continue;if(!vis[next]) {q.push(next); step[next] = step[head] + 1; vis[next] = true; }if(next == k) return step[next];}}
}int main()
{int n, k;cin >> n >> k; if(n >= k) cout << n - k << endl; elseprintf("%d\n", bfs(n, k));return 0;
}
D - 可以帮学姐通关嘛(〃'▽'〃)
天气冷了。
wy学姐玩起了卡牌游戏,她遇到了一个特殊关卡。
在这个关卡中,她只有数字为0或数字为5的卡牌可以打出伤害(把这些卡片上的数字排列成一排即为造成的伤害值)。
Of course,这个特殊的关卡有一个特殊的大BOSS,只有造成90的倍数的伤害值才有效果,否则BOSS将直接免疫伤害值。
天气越来越冷了。
wy学姐不想思考,于是她随机选择了幸运的你,来帮她解决这个问题——手中摸到的牌能打出的最大伤害数是多少?
注意:她可以不把卡牌全部用完。
Input
第一行是一个整数 n (1 ≤ n ≤ 103).
第二行是 n 个整数 a1, a2, ..., an (ai = 0 or ai = 5). 数 ai 即 i-th 卡片上的数字.
Output
输出一个数——造成的最大伤害(90的倍数)。
如果手中的卡牌无法生成90倍数的伤害值,则输出-1.
Examples
Input
4 5 0 5 0
Output
0
Input
11 5 5 5 5 5 5 5 5 0 5 5
Output
5555555550
Note
在第一个测试中,您只能生成一个 90 的倍数 —— 0。
在第二个测试中,您可以生成数 5555555550,它是 90 的倍数。
思路:
当5的个数是9的倍数时,以及至少有一个0的时候成立,
当5的个数不足9个,但存在0时,输出0,
当没有0的时候,输出-1.
#include<iostream>using namespace std;int main()
{int n,x,i;int five=0,zero=0,Afive=0;cin>>n;for(i=0;i<n;i++){cin>>x;if(x==5) five++;if(x==0) zero++;}Afive=five/9;if(Afive>=1&&zero>=1){while(Afive){cout<<"555555555";Afive--;}while(zero){cout<<"0";zero--;}}else if(Afive<1&&zero>=1){cout<<"0";}else if(zero==0){cout<<"-1";}return 0;
}
E - 宝藏男孩zks
zks会长梦见一片充满宝藏的沙滩, 它是由若干正方形的块状土地组成的一个W*H矩形区域。zks会长决定挖出这片沙滩所有的宝藏,成为传说中的宝藏男孩!!!
不幸的是,在他挖第二块地时就触发了埋藏其中的地雷,他直接被从宿舍的床上炸醒。
他恍然大悟,原来这片沙滩上的每一块地,除了宝藏,还有可能是地雷!
故事没有就这样结束,第二天,他又做了相同的梦...
编写一个程序,计算出zks会长在被炸醒前可能挖到宝藏的最大数量。
Input
输入包含多组数据. 每组数据包含两个正整数W和H.
H表示列数,W表示行数. W和H不超过20.
每块地用字符表示如下:
'.' - 宝藏
'#' - 地雷
'@' - 起点(每组数据中只有一个,下面也有宝藏!)
输入 0 0 时程序结束
Output
对于每组数据,输出一个整数,即zks会长能挖到宝藏的最大数量。
Sample Input
6 9 ....#. .....# ...... ...... ...... ...... ...... #@...# .#..#. 11 9 .#......... .#.#######. .#.#.....#. .#.#.###.#. .#.#..@#.#. .#.#####.#. .#.......#. .#########. ........... 11 6 ..#..#..#.. ..#..#..#.. ..#..#..### ..#..#..#@. ..#..#..#.. ..#..#..#.. 7 7 ..#.#.. ..#.#.. ###.### ...@... ###.### ..#.#.. ..#.#.. 0 0
Sample Output
45 59 6 13
思路:
从起点开始,向四个方向都尝试走一次,如果可以就走过去,并把走到的地方变成#,重复。
#include<iostream> using namespace std;
int rx[4] = {0, 0, +1, -1}, ry[4] = {+1, -1, 0, 0}, w, h,ans;
char a[25][25];
int x,y,i,j;
void first(int x,int y){for(int k=0;k<4;k++){if(x+rx[k]>=0&&x+rx[k]<h&&y+ry[k]>=0&&y+ry[k]<w&&(a[x+rx[k]][y+ry[k]]=='.')){a[x+rx[k]][y+ry[k]]='#';ans++;first(x+rx[k],y+ry[k]);}}
}
int main()
{while(cin>>w>>h){ans=1;if(w==0&&h==0)break;for(i=0;i<h;i++)for(j=0;j<w;j++){cin>>a[i][j];if(a[i][j]=='@'){x=i;y=j;} }first(x,y);cout<<ans<<endl;}return 0;
}
G - 为了lh学长!冲鸭!!
协会正在举行一场对外的加时赛,在这场比赛中有n个小队,依次从1到n进行编号。
每一轮比赛后剩下小队的ID会重新按照顺序依次编号,然后按以下顺序进行比赛:第一队和第二队比,第三队和第四队比,依此类推。
可以保证在每一轮比赛中都有偶数个队。
每场比赛的获胜者晋级下一轮,失败者被淘汰出局,没有平局。
在最后一轮比赛中,只剩下两支小队,这一轮被称为决赛,获胜者被称作冠军。
大家都希望lh学长带领的小队和hz学长带领的小队进入决赛。
不幸的是,球队ID已经被确定了,lh学长和hz学长可能不会在决赛中相遇,因为如果他们足够强大,他们将在更早的阶段相遇。
请你预测一下,lh学长所在的ID为a和hz学长所在的ID为b的小队将会在哪一轮中碰面。
注意:lh学长的小队和hz学长的小队是所有小队中最强的存在!!!
Input
唯一的行包含三个整数n,a和b (2≤n≤256,1≤a,b≤n) 分别为参加比赛的小队总数,lh学长所带领的小队编号,hz学长所带领的小队编号。
可以保证,在每一轮比赛中,都有偶数个队晋级,并且a和b不相等。
Output
如果lh学长和hz学长可以在决赛中相遇,则输出唯一一行“Final!”(没有引号)
否则输出lh学长和hz学长相遇的轮数。
轮数是从1开始累计的。
Examples
Input
4 1 2
Output
1
Input
8 2 6
Output
Final!
Input
8 7 5
Output
2
Note
在第一个例子中,lh学长所在的1队和hz学长所在的2队在第1轮相遇。
在第二个例子中,lh学长所在的2队和hz学长所在的6队只可能在第3轮决赛时相遇(他们战胜了之前的所有对手)。
在第三个例子中,lh学长所在的7队和hz学长所在的5队可以在第2轮相遇(他们都在第1轮中赢得了对手)。
思路:
先算出如果正常比赛一共会比赛多少次,
然后算出1队和2队相遇需要比赛的场次进行比较,最后得出结果。
通过1队,2队不断减半然后增加一场得出相遇需要的场次。
#include<stdio.h>
int main()
{long n,a,b,z=0,x=0;scanf("%ld %ld %ld",&n,&a,&b);for(;n>1;n/=2){x++;}for(;;){z++;if((a==b+1||b==a+1||a==b)){break;}if(a%2==0&&a!=2){a/=2;}else if(a%2!=0&&a!=1){a+=1;a/=2;}else if(a==1){a==1;}else if(a==2){a/=2;}if(b%2==0&&b!=2){b/=2;}else if(b%2!=0&&b!=1){b+=1;b/=2;}else if(b==2){b/=2;}else if(b==1){b==1;}}if(x==z){printf("Final!\n");}else{printf("%ld\n",z);}return 0;
}
2021-11-27月赛题解相关推荐
- 2021.11.27月赛题解
目录 A-可以教学姐画画嘛QAQ B-yh学长的养猪场 C-可以帮学姐通关吗 D-宝藏男孩zks E-为了lh学长!冲鸭! F-可以收下lh学长的小心心♥嘛~~~ G-金身已成,只待渡劫! A-可以教 ...
- 2021/11/27大数据1+XJava答案
2021/11/27 步骤二 //已经提供Student类的属性,补充完成该类的有参(五个参数)及无参构造方法public Student(){}public Student(String name, ...
- 2021年第11月月赛题解akoj
A.4和7? B.棋盘!! C.分数!!! D.小J和他的复习计划 E. 进度条 F 车牌号匹配 G.Happy Number H.给你一个签到题 I.砝码问题 J.阵前第一功 问题A解题思路 贪心, ...
- 2016/11/27月赛总结
比赛链接:点这里 密码:ACM7114 题目: C - The calculation of GPA Time Limit:1000MS Memory Limit:32768KB 6 ...
- csu-2018年11月月赛Round2-div1题解
csu-2018年11月月赛Round2-div1题解 A(2191):Wells的积木游戏 Description Wells有一堆N个积木,标号1~N,每个标号只出现一次 由于Wells是手残党, ...
- 「LuoguP4995」「洛谷11月月赛」 跳跳!(贪心
题目描述 你是一只小跳蛙,你特别擅长在各种地方跳来跳去. 这一天,你和朋友小 F 一起出去玩耍的时候,遇到了一堆高矮不同的石头,其中第 ii 块的石头高度为 h_ihi,地面的高度是 h_0 = 0 ...
- 2021.11.8-11.14 AI行业周刊(第71期):AI行业经验
篇章一:行业经验 不同的AI公司,对于AI产品的场景定位不同. 有的公司是面向C端产品.有的公司专门做B端用户. 当然大白所在的公司,也有具体的定位,主要面向智慧金融.智慧机场.智慧城市. 之前,一直 ...
- python爬虫爬美女图片:“小甲鱼056节轮一只爬虫的自我修养4:OOXX” 最终更新2021.6.27日,更新后可用!!!
目录 2020.10.25日更新 代码: 2020.11.10日更新 代码 2021.6.27日更新,更新后可用 2020.10.25日更新 需要改动有两个方面: 第一方面,网址编码有变化,如http ...
- 2021.11.29-12.5 AI行业周刊(第74期):AI公司产品
篇章一:AI公司产品 上周二去青岛,参加青岛市政府举办的AI百企百景线下资源对接会. 线下来了很多入驻青岛的企业,包括商汤科技,旷视科技,腾讯,科大讯飞,极视角等. 作为线下场景落地的三家典型企业,我 ...
- 2021.05.27 发表自己第一篇技术文章
从昨晚开始做家庭财经系统.不要以为有系统两个字就怎么复杂,都是大家都会的.建库.建表. 第一个使用软件是mysql 2021.05.26 数据库 lianxi 已建好. 表 members_basic ...
最新文章
- View requires API level 21 (current min is 15): Toolbar
- [转]linux下fms2流媒体服务器搭建之五-----flv播放器制作篇
- Windows从web下载文件的几种方式
- mysql出现can t_php运行提示Can't connect to MySQL server on 'localhost'的解决方法
- 启动zookeeper_Giraph源码分析(一)—启动ZooKeeper服务
- 3大AI事件入围百度2017科技热搜,柯洁对战AlphaGo排名第一
- 林斌宣布好消息!语音识别大佬、Kaldi之父加盟小米
- 在线工具大全 - 推荐
- ezcad旋转轴标刻参数_激光打标机软件ezcad中菜单下的旋转角度标刻功能介绍及其操作设置...
- android 看视频播放器下载,想看视频播放器
- Django使用manager.py 运行项目,或者uWSGI进行部署项目,使用Nginx进行负载均衡
- 查看自己电脑的主板支持多大的内存
- 微信小程序之小程序审核
- html打印时显示不全,打印表格时内容显示不完整怎么办?四种方法解决WPS不完整问题...
- 乱发短信的脉脉终于败诉了,网友:早就该判刑了
- spring boot 集成xxl-job 学习总结
- 首批最佳骑行路线揭晓
- ubuntu chmod命令
- Oracle入门--水表项目(单表查询,链接查询,左右外连接,子查询,分页查询)(3)
- MyEclipse 2013优化技巧
热门文章
- 完整的软件兼容性测试涉及领域
- html页面判断是手机端访问,JS 判断手机端和pc端后跳转对应页面
- Lottie动画概述
- element-ui date-picker日期格式化总结
- mysql 学生 课程关系,在学生-选课-课程数据库中有三个关系:S(S#,SNAME,SEX,AG..._考试资料网...
- macOS中虚拟机桥接模式分配静态ip
- 关于在项目中有没有必要使用docker的一点感悟
- TCP数据收发两问题的排查
- 神武4服务器维护中,《神武4》上周更新内容分析与解读
- 抖音开发对接之订单取消消息