1020 SHOI2008 安全的航线flight

这题的代码写了很久,主要是因为几何题的东西都忘得差不多了。除去写代码的2个小时,今晚又调了一晚上,终于AC了。

这题的做法还是很有参考价值的。

最简单的方法:

二分一个答案\(ans\),把小岛向外变大\(ans\)的距离。这个“变大”可以把点变成圆,把线段变成矩形。然后判断线段(航线)是否被完全覆盖,此做法巨烦。

除了上面所说的做法外,还百度到了一篇ydc的题解:http://ydcydcy1.blog.163.com/blog/static/21608904020131492229367/ 《迭代思想的应用》(莫涛)这篇论文硬是没找着。

1021 SHOI2008 Debt 循环的债务

一道动态规划。注意到钱的总数比较小,所以设\(f(i,a,b)\)为使用前i中钞票,使得Alice有\(a\)元,Bob有\(b\)元,Cynthia有\(sum-a-b\)元(\(sum\)是钱的总数)的最小交换次数。

注意到,如果Alice给了Bob\(X\)元,Bob又给了Cynthia\(X\)元那么干脆让Alice给Cynthia\(X\)元,因为题目要求交换次数最小。所以转移的时候只有\(6\)种可能(用ABC代替他们的名字):

1.A->B,A->C

2.B->A,B->C

3.C->A,C->B

4.B->A,C->A

5.A->B,C->B

6.A->C,B->C

时间复杂度\(O(6 \cdot 1000^2 \cdot x^2)\),x是转移时的钞票数量,理论上是过不了的,但。。。。

1022 SHOI2008 小约翰的游戏John

传说中的anti-nim。判断方法:

根据《组合游戏略述——浅谈SG游戏的若干拓展及变形》(贾志豪)的说法:

设条件一为SG的值为零;

条件二为某单一游戏的SG大于一。

那么,当且仅当 其中一个条件满足 而 另外一个不满足,那么就是必胜态。

证明也很容易,利用数学归纳法即可。

1024 SCOI2009 生日快乐

暴搜即可。

1025 SCOI2009 游戏

题目易转化为:将\(n\)进行整数拆分,问:拆分成的若干整数的lcm有多少种可能?

QAQ

如果有两种拆分方案的lcm相等,我们只取1个数最多的方案。比如:

19 = 2 + 9 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 方案一
19 = 18 + 1 方案二
两者lcm都是18。

我们统计方案一的。

这样的话,如果lcm的结果为$ {p_1}^{q_1} {p_2}^{q_2} {p_3}^{q_3} ...\(,那么我们统计的拆分方案一定为:
\) n = {p_1}^{q_1} + {p_2}^{q_2} + {p_3}^{q_3} + 1 + 1 + ...$(也可能没有+\(1\),反正+\(1\)是为了刚好凑成\(n\))。

这样就可以dp了,dp过程不再累赘叙述!

1026 SCOI2009 windy数

DP,记\(f(i,upper,isZero,lastNum)\),分别表示第几位、有没有上界、是否为\(0\)、上一个填的数字。

1027 JSOI2007 合金

样例居然是错的,囧。

QAQ

高一的数学数学看起来学得不好啊QAQ。

不妨把合金表示为向量\((x,y,z)\),\(x,y,z\)就是读入的那个合金比例。

如果是两个材料合起来,能够合成怎样的合金呢?

设两种材料分别为\(\vec a\)和\(\vec b\),成品为\(\vec c\),使用第一种材料的比例是\(p(0\leq q \leq 1)\),那么有$$\vec c = p\vec a + (1-p)\vec b$$

这说明\(\vec c\)和\(\vec a - \vec b\)是共线的,并且点!由于无论怎样合成,\(x+y+z=1\),所以可以去掉一维,变成平面上的点。

如果是三种(或以上)的材料,可以合成的成品就是一个面(凸包)!

问题就变为:有一些白点和一些黑点,需要选出最少的白点,使得所有的黑点都在白点的凸包里。

这个问题居然可以转化成图论:

枚举两两白点(设为点\(A\)和点\(B\))形成的向量,如果其他所有的黑点都在向量的“左边”,那么就连一条有向边\(A\)->\(B\),如果都在右边,连一条有向边\(B\)->\(A\),然后在图的长度最小的环的长度就是答案,不过要特判几个东西:

  • \(n=0\)的情况,答案为\(0\)
  • 需要合成的点都在一个点上,答案为\(1\)
  • 需要合成的点都在一条直线上,特判答案为\(-1\)还是\(1\)

1028 JSOI2007 麻将

以前做过这道题,不过一直wa,看了看代码,原来是判断胡牌错了,根据贪心,应该先取刻子(即完全相同的三张牌),再取顺子(即同花色且序数相连的序数牌)。

1029 JSOI2007 建筑抢修

考虑一个更简单的问题:判断是否能把所有的建筑抢修完?

判断方法应该不难想到:按T2从小到大排序,扫描一遍计算即可。

这个贪心证明也不难,先假设它们之中存在:对于$ i < j \(,有\) T2_i > T2_j \(,然后发现交换\)i\(和\)j$后必然不会更差!

这样子的话,我们就先按T2排序。接着我想到做个DP:设\(f(i,j)\)表示前\(i\)个建筑抢修\(j\)个需要的最少时间。当然这个DP是\(n^2\)的。

QAQ

其实我们采用“后悔”的方式贪心就可以了。

先按T2从小到大尝试添加一个建筑,有两种情况:

  • 这个建筑可以抢修,那么就抢修,并将答案加一。
  • 这个建筑建造花费的时间比前面某一个已经抢修的建筑花费的时间要少,那么我们“后悔”抢修之前的那个建筑,替换成现在的建筑。

bzoj 1020-1029的更多相关文章

  1. BZOJ 1020 [SHOI2008]安全的航线flight

    1020: [SHOI2008]安全的航线flight Time Limit: 1 Sec  Memory Limit: 162 MBSubmit: 847  Solved: 286[Submit][ ...

  2. 【BZOJ】1029: [JSOI2007]建筑抢修(贪心)

    http://www.lydsy.com/JudgeOnline/problem.php?id=1029 按右端点排序后依次加入,并且每一次看是否能被修筑,如果能就修:否则查找原来修过的,如果原来修过 ...

  3. 【BZOJ 1020】 [SHOI2008]安全的航线flight

    [题目链接]:http://www.lydsy.com/JudgeOnline/problem.php?id=1020 [题意] [题解] 二分+判断点是否在多边形区域内+计算点到直线的最短距离 对于 ...

  4. BZOJ 1020 安全的航线flight

    Description 在设计航线的时候,安全是一个很重要的问题.首先,最重要的是应采取一切措施确保飞行不会发生任何事故,但同时也需要做好最坏的打算,一旦事故发生,就要确保乘客有尽量高的生还几率.当飞 ...

  5. 【BZOJ】【1020】【SHOI2008】安全的航线flight

    计算几何/二分/迭代/搜索+剪枝 写三个tag可能是因为从哪个方向来理解都可以吧…… 我完全不会计算几何所以抄了ydc的代码 题解:http://ydcydcy1.blog.163.com/blog/ ...

  6. BZOJ 1029 建筑抢修 贪心+堆

    又搞了一晚上OI,编了两道BZOJ和几道NOI题库,临走之前写两篇感想 noip越来越近了,韩大和clove爷已经开始停课虐我们了... 1029: [JSOI2007]建筑抢修 Time Limit ...

  7. 【BZOJ】【1029】【JSOI2007】建筑抢修

    贪心 按T2(完成时限)排序,然后从前往后依次枚举 如果sum+a[i].t1<=a[i].t2则加入 如果来不及修这个建筑: 如果当前这个建筑的维修时间t1比之前修过的建筑中耗时最长的耗时短, ...

  8. [BZOJ 1029] [JSOI2007] 建筑抢修 【贪心】

    题目链接:BZOJ - 1029 题目分析 使用一种贪心策略. 现将任务按照deadline从小到大排序. 然后枚举每一个任务,如果当前消耗的时间加上完成这个任务的时间不会超过这个任务的deadlin ...

  9. HDU 1029 Ignatius and the Princess IV / HYSBZ(BZOJ) 2456 mode(思维题,~~排序?~~)

    HDU 1029 Ignatius and the Princess IV (思维题,排序?) Description "OK, you are not too bad, em... But ...

  10. BZOJ 1029 建筑抢修(贪心堆)

    原题代号:BZOJ 1029 原题链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1029 原题描述: 建筑抢修 小刚在玩JSOI提供的一个称之为 ...

随机推荐

  1. python优秀库 - 使用xmltodict解析xml文档

    上次讲到如何使用BeautifulSoup解析XML文档,今天发现另外一个python库xmltodict(https://github.com/martinblech/xmltodict)也很简单. ...

  2. Using WMIC For Gathering System Info

    WMIC is a command line interface to WMI (Windows Management Instrumentation). While it has many uses ...

  3. Qt之QNetworkInterface(查询网络接口),QHostInfo(查询主机IP)

    http://blog.csdn.net/u011012932/article/details/50775052 http://blog.csdn.net/u011012932/article/det ...

  4. 解析request的反馈信息

    Map<String,String> params = new HashMap<String,String>(); Map requestParams = request.ge ...

  5. Maven 版 JPA 最佳实践

    项目结构图 数据库环境 数据库:MySQL 版本:5.x 数据库名:jpa-demo 用户名密码:root/1234 代码清单 1:数据库脚本: /* Navicat MySQL Data Trans ...

  6. poco vs Boost

    Wooce Yang收集整理 POCO的优点: 1) 比boost更好的线程库,特别是一个活动的方法的实现,并且还可设置线程的优先级. 2) 比 boost:asio更全面的网络库.但是boost:a ...

  7. Uva 3226 Symmetry

    题目给出一些点的坐标(横坐标,纵坐标),没有重叠的点,求是否存在一条竖线(平行于y轴的线),使线两边的点左右对称. 我的思路:对于相同的纵坐标的点,即y值相同的点,可以将x的总和计算出,然后除以点的数 ...

  8. A. Liserious战队

    Liserious战队是一支活跃在京沪地区的著名密室逃脱战队,在优秀的队长Liserious和芳姐的带领下,打遍天下大大小小的密室逃脱,攻无不克,战无不胜,上天入地无所不能. 世界密室逃脱委员会以IS ...

  9. Android:源码环境下移植第三方的apk内置到ROM(System Image)中

    1. 首先在vendor目录下新建一个the3rdapk的目录,将需要内置的apk丢进去,目录名自己随意定. 2. 在 build/target/product/common.mk最后面,在$(cal ...

  10. IDEA 中使用Maven Compile 找不到本地 Jar

    本文地址:http://www.cnblogs.com/duwei/p/4656410.html 在IDEA 的子 Maven Module 中使用 compile 进行编译, 一开始提示从私有远程仓 ...