您的位置:首页 > 产品设计 > UI/UE

UESTC Summer Training #25解题报告

2012-08-11 23:19 483 查看
比赛地址:http://acm.hust.edu.cn:8080/judge/contest/view.action?cid=11206#overview

IDOriginTitle
Problem APOJ 2694A Simple Poker Game
Problem CPOJ 2696A Mysterious Function
Problem DPOJ 2697A Board Game
Problem EPOJ 2698Servicing DVD Requests
Problem FPOJ 2699The Maximum Number of Strong Kings
Problem GPOJ 2700Space Travel
Problem HPOJ 2701Lapux the Floating Island
Problem
I
POJ 2702Can a Complicated Program Go Wrong?
Problem JPOJ 2703Maximum Area Covered by Rectangles
吐槽自己:J都能挂三发。。。。。

以后写好代码,一定要认真看一遍!!!!!不要偷懒呀

最后剩了一个小时,我们没有出题,H没有看题意,貌似是不难的一个几何题,自己一直在想G题,当时想到一步公式的推导,把队友讲旷了,他们就没有从这个方向思考。后面看过的一支队伍,貌似就是从那个方向走的。

佩服Fish他们,G想到了先猜后打表证明,我们队什么时候才能有这么神呀。。

Problem A POJ 2694 A Simple Poker Game

签到题,模拟题,队友搞的。

Problem B POJ 2695 Rick the Persistent Gnu

题意: n个点(n<=100),给你起始点,一个方向向量, 每次要求你找一个距离之差不超过D,人走的方向改变量没超过90度,并且与给定的方向向量量的偏角最小,输

出每次选择的点。

简单的几何题,自己wa了一发,在队友告诉题意之后,看见题目太长了,没有好好去读题。

为了简化里面的一些处理,将方向向量旋转成x的正方向。

改变量不超过90度,就是点乘为正

偏角 直接可以用fabs( atan2(y,x));

Problem C POJ 2696 A Mysterious Function

这题不用说了吧。。。大水题一道

Problem D POJ 2697 A Board Game

应该是poj数据水了,队友bfs暴过去的。

Problem E POJ 2698 Servicing DVD Requests

题意:K个光驱,你现在要放n个光盘进去,如果第ki个光盘,已经在光驱里,就不用放,否则找一个地方进去
(如果放的地方有光盘,就相当于先要取出那张光盘),问

放光盘的最小次数

贪心题,这种东西,先猜后证

1

2

3

5

3

1

2

如果K=3,前3个已经依次放好了,现在放编号为5的,此时我们必须替换一张光盘出来,到底替换谁最优呢?看到那张图,你是否会有种感觉,替换3,不是一个明智的

选择,因为下一张光盘就是3,如果此时替换了,显然不优越,那替换1呢?替换2呢?

相信你应该会猜:我们选择光驱中包含的下一场光盘出现的位置最远那张,把它替换掉,比如上面,我们就是替换2,因为在1,2,3中,下次出现2的位置最远。

证明这些东东,,想想,应该就明白了。

Problem F POJ 2699 The Maximum Number of Strong Kings

题意:n(n<=10)个人进行比赛,一场比赛没有平局,赢就得一分,现在给你n个人的得分,问最多有多少个人,满足比该人得分高的人都输给了该人。

将人按得分从小到大排序,显然,满足条件的人,是从后依次的。(eg. 5个人如果答案是3,那么必然是编号为3 4 5的三个人)

上面的那个问题比较好想到,然后很理所当然的会想到一个个的验证,验证答案为k是否成立。要验证成立,一个人无法知道他到底赢了谁呀?尼玛,好坑爹,,怎么办?

有没有一种感觉,跑网络流,,让它跑出一种分配方式来????

该题难在如何建图: 首先,从源点与每个人之间建立一条边,流量为该人赢的次数,对任意两个人之间有一场比赛,比如(i,j),我们建立一个点K(i,j),然后

将i,j连到该点,再将该点连到汇点,这里我们可以不用关心到底谁赢了谁,只看最终的最大流量,是不是一共赢的次数,如果是,表示分配成功了。神奇吧。。over

Problem G POJ 2700 Space Travel

数论题,我推了出前半部分公式,后面不知道怎么做,看了UESTC_Kyouko的神代码,前部分推导一样的,后面感觉是一种比较暴力的方式,然后我也去暴力了一发,

T了,,看来没发现他们的精髓呀,,等我暴过去再来更新了。

这里有一种不用数论的方式: 就是答案的a*x+b*y 的x,y两个必然有一个超过sqrt(n),你问我为什么? (Orz Fish:“猜,打表验证”)

Problem H POJ 2701 Lapux the Floating Island

几何题,,还没拍呢。。。卡着G呀!先搞定G再说

Problem I POJ 2702 Can a Complicated Program Go Wrong?

题意:给你两个自动机,问在上面那个自动机出现的串中,是否能够让下面这个自动机走进一个标记-1的点。

Fjj 神读题呀,,很肯定的告诉我题意是那样,然后水题,建立mp[x][y]:表示第一个自动机到达节点x,第二个自动机到达节点y,然后就枚举走的路径,最多500*500个

状态。。

Orz Fjj,拍码太快了。。十分钟不到,搞定。。。

Problem J POJ 2703 Maximum Area Covered by Rectangles

N个矩形(保证宽小于高),宽相等的矩形被视为同一种类型,对两种不同类型的矩阵,保证不存在一方能够完整的包含另一个矩形,最后问你,这N个矩形覆盖的面积是

多少。(保证每种类型的矩阵的个数不小于2)

分析:

对同一种类型的矩阵,有用的就是高度最高的两个。

如图,最终形成的一定如上图,按宽从大到小放,下一种类型的矩形一定是宽小于它,而高大于它,而增加的面积就是上图线段的长度和*该中矩形的宽

看看图,就发现即为两种类型 矩形的最高两个矩形高度之和的差值
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: