EXAM 7.13

来源:互联网 发布:hfss微带线端口 编辑:程序博客网 时间:2024/06/06 03:18

7月13考试心得:

总体评价:
前三道题较简单,最后一道有一定难度,但是可以由简单算法变化运算,想通了也不是很难

考试状态中偏下,感冒吃了药人有点难受。准备也不是很充分,连多拍程序都没记住,于是考试过程中都没有用到多拍。第三题没想出来确实不应该,考试技巧还是不足不够熟练,连一些常用方法,打表法都搞忘了。

题目分析:

1:足球联赛(100):
巴蜀中学新一季的足球联赛开幕了。足球联赛有 n只球队参赛,每赛季,每只球队要与其他球队各赛两场,主客各一场,赢一场得 3 分,输一场不得分,平局两只队伍各得一分。
  英勇无畏的小鸿是机房的主力前锋,她总能在关键时刻踢出一些匪夷所思的妙球。但是很可惜,她过早的燃烧完了她的职业生涯,不过作为一个能够 Burning 的 girl,她的能力不止如此,她还能预测这个赛季所有球队的比赛结果。
  虽然她能准确预测所有比赛的结果,但是其实她不怎么厉害,Mr.Gao 上数学课时她总是在 sleep,因此她的脑里只有整数没有实数,而且,她只会 10 以内非负整数的加法运算,因此她只有结果却无法知道谁会获得联赛的冠军。
思路:简单的枚举比赛就可以了

2:sums(100):
对于从 1 到 N 的连续整数集合,能划分成两个子集合,且保证每个集合的数字和是相等的。举个例子,如果N=3,对于{1,2,3}能划分成两个子集合,每个子集合的所有数字和是相等的: {3} 和 {1,2}。这是唯一一种分法(交换集合位置被认为是同一种划分方案,因此不会增加划分方案总数)。
  如果N=7,有四种方法能划分集合{1,2,3,4,5,6,7},每一种分法的子集合各数字和是相等的:
  {1,6,7} 和 {2,3,4,5} // 注 1+6+7 = 2+3+4+5
  {2,5,7} 和 {1,3,4,6}
  {3,4,7} 和 {1,2,5,6}
  {1,2,4,7} 和 {3,5,6}
  给出N,你的程序应该输出划分方案总数,如果不存在这样的划分方案,则输出0。程序不能预存结果直接输出(不能打表)。
  思路:就是原来的贴邮票模型(我考试的时候都没想起来还是现推的)前n个数中找m个和为S/2,dp一下
  

3:loops(0):
循环数是那些不包括0且没有重复数字的整数(比如81362)并且还应同时具有一个有趣的性质,就像这个例子:   如果你从最左边的数字开始(在这个例子中是8)向右数最左边这个数(如果数到了最右边就回到最左边),你会停止在另一个新的数字(如果停在一个相同的数字上,这个数就不是循环数)。
  就像: 81362 从8开始按上面的规则数8个数字: 1 3 6 2 8 1 3 6,停在数字6上;然后从6出发重复这样做,会停止在另一个新的数字上: 2 8 1 3 6 2, 也就是停在2上;再这样做 (这次数两个): 8 1;再一次 (这次一个): 3;又一次: 6 2 8 这时你回到了起点。在每个数字上停留一次后回到起点的就是循环数。如果你每个数字停留1次后没有回到起点,你的数字不是一个循环数。
  给你一个整数 M(是一个不超过9位的非负正整数),找出比 M大的最小循环数,如果不存在,则输出-1。
  思路: 题目描述循环数的特征:数据规模这么大一个数一个数枚举肯定不行,所以只能先把循环数打表打出来。而且注意要用long long。打表时因为它不含有重复数字,所以枚举之后再检查一次能不能循环就可以了。

4:【NOIP2009提高组】最优贸易(20):
C 国有n 个大城市和m 条道路,每条道路连接这n 个城市中的某两个城市。任意两个城市之间最多只有一条道路直接相连。这m 条道路中有一部分为单向通行的道路,一部分为双向通行的道路,双向通行的道路在统计条数时也计为1 条。
  C 国幅员辽阔,各地的资源分布情况各不相同,这就导致了同一种商品在不同城市的价格不一定相同。但是,同一种商品在同一个城市的买入价和卖出价始终是相同的。
  商人阿龙来到 C 国旅游。当他得知同一种商品在不同城市的价格可能会不同这一信息之后,便决定在旅游的同时,利用商品在不同城市中的差价赚回一点旅费。设C 国n 个城市的标号从1~ n,阿龙决定从1 号城市出发,并最终在n 号城市结束自己的旅行。在旅游的过程中,任何城市可以重复经过多次,但不要求经过所有n 个城市。阿龙通过这样的贸易方式赚取旅费:他会选择一个经过的城市买入他最喜欢的商品——水晶球,并在之后经过的另一个城市卖出这个水晶球,用赚取的差价当做旅费。由于阿龙主要是来C 国旅游,他决定这个贸易只进行最多一次,当然,在赚不到差价的情况下他就无需进行贸易。
  假设 C 国有5 个大城市,城市的编号和道路连接情况如下图,单向箭头表示这条道路为单向通行,双向箭头表示这条道路为双向通行。
    
  假设 1~n 号城市的水晶球价格分别为4,3,5,6,1。
  阿龙可以选择如下一条线路:1->2->3->5,并在2 号城市以3 的价格买入水晶球,在3号城市以5 的价格卖出水晶球,赚取的旅费数为2。
  阿龙也可以选择如下一条线路 1->4->5->4->5,并在第1 次到达5 号城市时以1 的价格买入水晶球,在第2 次到达4 号城市时以6 的价格卖出水晶球,赚取的旅费数为5。
  现在给出 n 个城市的水晶球价格,m 条道路的信息(每条道路所连接的两个城市的编号以及该条道路的通行情况)。请你告诉阿龙,他最多能赚取多少旅费。
  思路有两种:
一是先把所以互联的强连通分量求出来,在它们之间可以互相到达,所以可以把它们当成一个点,点有最大值和最小值。注意有些强连通分量不能到达目的地,所以缩点的时候,不能到达目的地的就不要连边走过去。然后可以在形成的DAG图上进行动态规划(记忆性搜索)有一定难度,要开两个数组记录从i到n的最大点权(卖价),i到n的最大收益。
二可以设dist数组表示从i走到n的路径上的最小买价,用SPFA计算(松弛操作时要注意)之后用图的反向边dfs或bfs找哪些点可以到目的地。最后枚举在每个点卖出的情况就可以了ans= Max(该点权值-每个点到n路径上的最小权值)

总结:虽然这次题目不难但是离目标还是有差距,noip的题目肯定比这次考试的题目难,想要在noip上取得好成绩还是不容易啊

ps:第一次在CSDN上写博客,心里还是有些小激动的,以后坚持吧!