Noip2019暑期训练2
题目名称 |
骑士遍历 |
和谐俱乐部 |
农场派对 |
对称二叉树 |
存盘文件名 |
knight |
Beautiful |
party |
tree |
输入文件名 |
knight.in |
Beautiful.in |
party.in |
tree.in |
输出文件名 |
knight.out |
Beautiful.out |
party.out |
tree.out |
时限 |
1s |
1s |
1s |
1s |
内存限制 |
128MB |
128MB |
128MB |
128MB |
题1:骑士遍历(knight)
【题目描述】
楚继光判断邪狼可能藏在一个n×n的(n≤10)正方形区域,楚继光骑着战马从任一点A(x,y)开始,试图找出一条路径,使马不重复地走遍区域的每一个点。马走的规则是走“日”字,可向任意方向走。
【输入格式】
三个整数n,x, y。n代表棋盘大小,x,y代表A点坐标,棋盘坐标从(0,0开始)。
【输出格式】
棋盘路径(搜索方向从最下方开始,依次逆时钟旋转)。
【输入样例】
5 2 0
【输出样例】
23 4 13 8 21
12 7 22 3 14
17 24 5 20 9
6 11 18 15 2
25 16 1 10 19
这道题肥肠简单,深搜AC,我的代码如下:
#include<bits/stdc++.h>
using namespace std;
int a[][],n;
bool b[][];
int dx[]={,,,,-,-,-,-};//搜索是从{1,-2}开始的
int dy[]={-,-,,,,,-,-};//这里题目表述不清,但是增量一定要这样写!不然输出和答案不一
void search(int x,int y,int t)
{
if(t==n*n)
{
for(int j=n-;j>=;j--)
{
for(int i=;i<n;i++)
cout<<a[i][j]<<' ';
cout<<endl;
}
exit();//讲解的时候老师说这里最好不要用强制退出,容易出错,再定义一个bool变量判断是否有路径就可以啦
}
for(int i=;i<;i++)
{
int p=x+dx[i],q=y+dy[i];
if(p>=&&p<n&&q>=&&q<n&&!(b[p][q]))
{
b[p][q]=true;
a[p][q]=t+;
search(p,q,a[p][q]);
b[p][q]=false;
}
} }
int main()
{
//freopen("knight.in","r",stdin);(考试的时候一定记得这两行不要写错啦!!!)
//freopen("knight.out","w",stdout);(最好是一拿到题目就写,不怕一万就怕万一)
int x,y;cin>>n>>x>>y;
a[x][y]=;b[x][y]=true;
search(x,y,);
cout<<"-1";//本题数据有bug,会出现没有解决方案的情况,此时输出“-1”
return ;
}
题2:和谐俱乐部(Beautiful)
【题目描述】
“木秀于林,风必摧之;堆出于岸,流必湍之;行高于人,众必非之”,人类最可怕的罪之一,就是嫉妒。它生出许多最黑暗、污秽的罪行,使魔法世界的历史为之蒙羞。
魔法学院的某一个私人俱乐部有N个会员,每一个会员都是既美丽又强壮的,我们以A代表强壮,以B代表美丽。但他们都有一个缺点是嫉妒。例如i会员嫉妒j会员的条件是:Ai ≤ Aj并且Bi ≥ Bj,Ai ≥Aj并且Bi≤Bj,但是如果j会员的美丽和强壮都不如i会员,则i会员会忽视j会员的存在。而如果j会员的美丽和强壮都强于i会员的话,则i会员会非常尊敬j会员。
为了庆祝新年的到来,俱乐部经理准备组织一次舞会,但是他担心各会员之间由于嫉妒而引发争斗。所以,邀请哪些会员前来参加舞会实在是伤透了经理的脑筋。那么,精通电脑编程的你,能告诉经理发放邀请函最多人数是多少吗?
【输入格式】
第一行为整数N(2≤ N≤10000),代表N个会员。
剩下N行为每个会员的A值和B值。( 1≤ Ai,Bi ≤109 )
【输出格式】
一行为最大邀请人数。
【输入样例】
4
1 1
1 2
2 1
2 2
【输出样例】
2
这道题呢就是先排序,然后再求最长上升子序列(DP),没有一点技巧!只不过要仔细看题目:如果j会员的美丽和强壮 都 不如i会员,则i会员会忽视j会员的存在。而如果j会员的美丽和强壮 都 强于i会员的话,则i会员会非常尊敬j会员。我的修改后的代码(这道题一开始只得了部分分)如下:
#include<bits/stdc++.h>
using namespace std;
int n,mi;
struct node{
int a,b,l;
bool operator <(const node &y)const
{
return a<y.a;
}
}x[];
int main()
{
//freopen("Beautiful.in","r",stdin);
//freopen("Beautiful.out","w",stdout);
cin>>n;
for(int i=;i<=n;i++)
{
cin>>x[i].a>>x[i].b;
x[i].l=;
}
sort(x+,x+n+);
for(int i=n-;i>=;i--)
{
mi=;
for(int j=i+;j<=n;j++)
{
if(x[i].b<x[j].b&&x[j].l>mi&&x[i].a<x[j].a)//一开始我没写x[i].a<x[j].a,因此错了两个点,所以说题目一定要看清楚!
{
mi=x[j].l;
}
}
x[i].l=mi+;
}
mi=x[].l;
for(int i=;i<=n;i++)
if(x[i].l>mi)mi=x[i].l;
cout<<mi;
return ;
}
题3:农场派对(party)
此题详情和代码请见↓↓↓
农场派对(party)(信息学奥赛一本通 1497) - endl\n - 博客园 https://www.cnblogs.com/ljy-endl/p/11285884.html
题4:对称二叉树(tree)
此题详情和代码请见↓↓↓
【18NOIP普及组】对称二叉树(信息学奥赛一本通 1981)(洛谷 5018) - endl\n - 博客园 https://www.cnblogs.com/ljy-endl/p/11281818.html
Noip2019暑期训练2的更多相关文章
- Noip2019暑期训练2 反思
经过两次测试,通过深刻的反思,我主要发现了以下易犯错误: 1.做题目时过于追求速度,导致好几处代码都出现手误打错的现象!而且,千万不要图快.图方便就复制粘贴,非常容易出错!(例如T3-party中直接 ...
- Noip2019暑期训练1
题目名称 时空定位 棋子移动 高精度乘法 数独游戏 存盘文件名 location piece mul sudoku 输入文件名 location.in piece.in mul.in sudoku.i ...
- [小结] 中山纪念中学2018暑期训练小结(划掉)(颓废记)-Day10
[小结] 中山纪念中学2018暑期训练小结(划掉)(颓废记)-Day10 各位看众朋友们,你们好,今天是2018年08月14日,星期二,农历七月初四,欢迎阅看今天的颓废联编节目 最近发生的灵异事件有 ...
- ACM暑期训练总结
ACM暑期集训总结报告 不知不觉,ACM暑期集训已经过去了一个月了(其实我还差几天才够一个月,因为最后几天要回家办助学贷款,所以没坚持到最后,当了个逃兵.....[汗])也到了结束的时候.在这一个月中 ...
- 「暑期训练」「基础DP」 Common Subsequence (POJ-1458)
题意与分析 很简单:求最长公共子序列. 注意子序列与子串的差别:一个不连续一个连续.一份比较好的参考资料见:https://segmentfault.com/a/1190000002641054 状态 ...
- 牛客网2018暑期训练 第三场 a题
#include <bits/stdc++.h> using namespace std; vector<int> path; ; short dp[maxn][maxn][m ...
- CSU-ACM2018暑期训练7-贪心
A:合并果子(贪心+优先队列) B:HDU 1789 Doing Homework again(非常经典的贪心) C:11572 - Unique Snowflakes(贪心,两指针滑动保存子段最大长 ...
- 「暑期训练」「基础DP」免费馅饼(HDU-1176)
题意与分析 中文题就不讲题意了.我是真的菜,菜出声. 不妨思考一下,限制了我们决策的有哪些因素?一,所在的位置:二,所在的时间.还有吗?没有了,所以设dp[i][j]" role=" ...
- 7/31 CSU-ACM2018暑期训练7-贪心
比赛链接 A-CSU - 1588 现在有n堆果子,第i堆有ai个果子.现在要把这些果子合并成一堆,每次合并的代价是两堆果子的总果子数.求合并所有果子的最小代价. Input 第一行包含一个整数T(T ...
随机推荐
- C# vb .net实现轮廓特效滤镜
在.net中,如何简单快捷地实现Photoshop滤镜组中的轮廓特效呢?答案是调用SharpImage!专业图像特效滤镜和合成类库.下面开始演示关键代码,您也可以在文末下载全部源码: 设置授权 第一步 ...
- SSO实现机制
引言 单点登录有许多开发商提供解决方案,本文以yale大学SSO开源项目CAS为例,介绍单点登录实现机制. 术语解释 SSO-Single Sign On,单点登录 TGT-Ticket Granti ...
- Django后台管理admin或者adminx中使用富文本编辑器
在admin或者adminx后台中使用富文本编辑器 一.建立模型:(安装django-tinymce==2.6.0) from django.db import models from tinymce ...
- python入门基础思维导图
- centos7配置nfs共享存储服务
nfs 是一种网络文件系统,需要依赖rpc进行过程调度 注意nfs只验证id,验证用户名,并且只能在类unix os上进行文件共享服务,由于它的脆弱的验证机制,所以不适宜在internet上工作,在内 ...
- 设置断点调式 fiddler
1. 用IE 打开博客园的登录界面 http://passport.cnblogs.com/login.aspx 2. 打开Fiddler, 在命令行中输入bpu http://passport. ...
- 【ElasticSearch】查询优化
一.背景 每周统计接口耗时,发现耗时较长的前几个接口tp5个9都超过了1000ms. 经过分析慢查询的原因是ES查询耗时太长导致的 二.设计方案 1.问题定位 查询功能使用不当导致慢查询 索引设计存在 ...
- js文本对象模型【DOM】(十一)
一.W3C DOM 标准被分为 3 个不同的部分:1.Core DOM - 所有文档类型的标准模型[)Document--> 9;Element -->1;TextNode -->3 ...
- CSS-服务器端字体笔记
服务器端字体 在CSS3中可以使用@font-face属性来利用服务器端字体. @font-face 属性的使用方法: @font-face{ font-family:webFont; src:ur ...
- Oracle 11g 体系结构概述
一.Oracle 体系结构主要用来分析数据库的组成.工作过程与原理,以及数据在数据库中的组织与管理机制. Oracle 数据库是一个逻辑概念,而不是物理概念上安装了 Oracle 数据库管理系统的服务 ...