题目名称

骑士遍历

和谐俱乐部

农场派对

对称二叉树

存盘文件名

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的更多相关文章

  1. Noip2019暑期训练2 反思

    经过两次测试,通过深刻的反思,我主要发现了以下易犯错误: 1.做题目时过于追求速度,导致好几处代码都出现手误打错的现象!而且,千万不要图快.图方便就复制粘贴,非常容易出错!(例如T3-party中直接 ...

  2. Noip2019暑期训练1

    题目名称 时空定位 棋子移动 高精度乘法 数独游戏 存盘文件名 location piece mul sudoku 输入文件名 location.in piece.in mul.in sudoku.i ...

  3. [小结] 中山纪念中学2018暑期训练小结(划掉)(颓废记)-Day10

    [小结] 中山纪念中学2018暑期训练小结(划掉)(颓废记)-Day10 各位看众朋友们,你们好,今天是2018年08月14日,星期二,农历七月初四,欢迎阅看今天的颓废联编节目 最近发生的灵异事件有 ...

  4. ACM暑期训练总结

    ACM暑期集训总结报告 不知不觉,ACM暑期集训已经过去了一个月了(其实我还差几天才够一个月,因为最后几天要回家办助学贷款,所以没坚持到最后,当了个逃兵.....[汗])也到了结束的时候.在这一个月中 ...

  5. 「暑期训练」「基础DP」 Common Subsequence (POJ-1458)

    题意与分析 很简单:求最长公共子序列. 注意子序列与子串的差别:一个不连续一个连续.一份比较好的参考资料见:https://segmentfault.com/a/1190000002641054 状态 ...

  6. 牛客网2018暑期训练 第三场 a题

    #include <bits/stdc++.h> using namespace std; vector<int> path; ; short dp[maxn][maxn][m ...

  7. CSU-ACM2018暑期训练7-贪心

    A:合并果子(贪心+优先队列) B:HDU 1789 Doing Homework again(非常经典的贪心) C:11572 - Unique Snowflakes(贪心,两指针滑动保存子段最大长 ...

  8. 「暑期训练」「基础DP」免费馅饼(HDU-1176)

    题意与分析 中文题就不讲题意了.我是真的菜,菜出声. 不妨思考一下,限制了我们决策的有哪些因素?一,所在的位置:二,所在的时间.还有吗?没有了,所以设dp[i][j]" role=" ...

  9. 7/31 CSU-ACM2018暑期训练7-贪心

    比赛链接 A-CSU - 1588 现在有n堆果子,第i堆有ai个果子.现在要把这些果子合并成一堆,每次合并的代价是两堆果子的总果子数.求合并所有果子的最小代价. Input 第一行包含一个整数T(T ...

随机推荐

  1. mssql server 排序 以及like语句

    当我们按照某个字段排序时,通常使用order by语句,如果该字段存在null值,则会把null值的这条放到最上面, 那我们是否有办法解决呢? 答案是肯定的: ORDER BY CASE WHEN O ...

  2. Hadoop2.x 集群搭建

    Hadoop2.x 集群搭建 一些重复的细节参考Hadoop1.X集群完全分布式模式环境部署 1 HADOOP 集群搭建 1.1 集群简介 HADOOP 集群具体来说包含两个集群:HDFS 集群和YA ...

  3. ASP.NET SignalR 系列(六)之连接事件

    本章主要介绍下SignalR自带的连接事件 其实再前面的示例中,有出现了一些事件的重载,比如 public override Task OnConnected() 下面简单介绍一下SignalR提供了 ...

  4. igel udc2 config

    igel udc2 config 系统安装盘下载地址 http://www.myigel.biz/?forcedownload /config/bin/igelone_config #!/bin/sh ...

  5. 05、MySQL—字符集

    1.字符编码概念 字符(Character)是各种文字和符号的总称,包括各国家文字.标点符号.图形符号.数字等. 在计算机中所看到的任何内容都是字符构成的. 字符编码(character code)是 ...

  6. springboot2.1.3+jacoco检测代码覆盖率

    关于 jacoco的介绍,不在本文中详细描述,简单点说,只是个代码覆盖率工具,想要了解具体的可以参考如下地址: https://www.jianshu.com/p/639e51c76544 好了,闲话 ...

  7. 在CentOS 7上修改主机名的方法

    这次我们来讲解一下如何在CentOS 7环境上修改主机名 1.从VMware上登录CentOS 7的虚拟机,并以root用户登录. 2.查看未修改前的主机名 1>.我们可以通过文件hostnam ...

  8. 调用office Word Com 组件,提示权限不足处理

    最近一直在处理一个项目,项目主要功能与Office-Word 有关,主要涉及到文本内容编辑与样式设置等相关内容.因项目依赖office 相关dll,需要兼容多种Office 版本(office 200 ...

  9. Linux 修改文件目录权限

    修改文件目录权限 chmod​ chmod u+x b.txt chmod 777 a.txt 修改文件的所有者和所属组 ​ 修改所有者chown beifeng a.txt 修改所属组chgrp b ...

  10. Gorgeous Sequence(HDU5360+线段树)

    题目链接 传送门 题面 思路 对于线段树的每个结点我们存这个区间的最大值\(mx\).最大值个数\(cnt\).严格第二大数\(se\),操作\(0\): 如果\(mx\leq val\)则不需要更新 ...