2015 UESTC Winter Training #4【Regionals 2008 :: Asia - Tehran】
2015 UESTC Winter Training #4
Regionals 2008 :: Asia - Tehran
比赛开始时电脑死活也连不上WIFI,导致花了近1个小时才解决_(:зゝ∠)_
未完成:B E F G H I
A - String LD
给n(<=100)个互不相同的字符串(最长为100),然后进行stringld操作,就是每次操作把各个字符串的首个字符删去,直到
- 有字符串完全删去
- 存在两个字符串完全一致
问在最后一次操作之前有几次操作(PS:问法是在太奇怪了,不就是答案减一嘛)
【简单字符串处理】
三层for循环,第一层枚举操作次数,第二层对每个字符串删去首字符,第三层比较,因为比较用了strcmp,相当于多了一层,结果o(n^4)的复杂度,怎么想都要超时啊。现在想想,第三层和第四层并不是全部枚举的,大概只枚举了一半,即最终复杂度是100*100*50*50=25,000,000。仍然很高,但是确实是3ms通过。
B - Painting
n*m(均小于等于100)的棋盘,小明(姑且认为是小明吧)用不同颜色凃这个棋盘,每次涂色将一整行或者一整列涂成一个颜色,给出棋盘的颜色(全都涂上颜色,用不超过10000的数字表示),问涂色的顺序(如果有多个答案,要求输出是字典序最小的)
【拓扑排序】【未完成】
假若某一行是653426,即某一个数出现了两次,那么一定有一次这一行刷的时是6,并且在这之后竖着刷了有5,3,4,2这四种颜色。那么构图从结点6向结点5,3,4,2分别一条有向边,这样构成图。最后做一次拓扑排序即可。
因为数字是10000以内,而结点数最多只有200个(横着刷或者竖着刷最多刷200次),因此做一个映射,把编号映射到1到200间。还因为要字典序最小,所以做映射之前记得要排一下序。
这道题最坑爹的一点据说是可能出现相同的涂色,即两次涂色用的是同一个颜色,因此我目前还没有改对。(因为题目中说了每次使用不同的颜色涂色,因此这个传言是错误的)
有时间再改一下吧。
C - Another Brick in the Wall
给出大小为m*n(均小于等于100)的一面墙,墙上有砖(废话),每块砖高度是一格,输入数据中用数字表示,数字为砖的长度,比如33322,就是一块长为3的砖和一块长为2的砖组合在一起。输入中的0表示这里没有砖。
现在要抽出一块砖。如果抽出砖之后,墙上某一块砖每一部分的下方均空着,那么这块砖就掉落到地上。问最多有多少长度的砖掉下去了(掉下去的包括抽出的砖的长度)。
【记忆化搜索】
这道坑爹的题目整整花了我两个小时的时间,一开始想用动态规划,就是从上到下进行动态规划,每扫描到一块砖,首先将这块砖的长度加进这块砖的dp值中,如果它下方的某块砖抽走后它能跌落,那么就累加入下方的砖的dp值中。
写了一半发现,例外情况
144441
333333
666666
就是说6抽去后,上一层同时跌落两块长度为3的砖,但是当仅有某一块长为3的砖跌落时,再上边长度是4的砖是不会跌落的,也就是说,仅仅是一个砖掉落的状态,传递给下方的砖是不可行的。也就是说需要记录多个砖同时掉落的状态。
那好吧,重新设定dp[f][l][r]是第f层,左边到l,右边到r的最大跌落长度。
但是写了1个小时就写不下去了,实在太麻烦了。
最后想到使用记忆化搜索,记忆化搜索的话可以少算一些不必要的状态。(我真是太机智了,哈哈),仍然使用dp[f][l][r]记录状态,dp[f][l][r]是第f层,左边到l,右边到r的最大跌落长度。每次记忆化搜索,仍然是检查是否存在状态,如果这块砖左边有x个空位,右边有y个空位,就把[l,r]延伸至[l-x,r+y],总之是等价的。
接着就是检查上方是否有砖跌落,如果上方没有砖(也就是在第一行),就把l~r的砖的长度输出(注意可能有空位,也就是说扫描一遍计算长度),如果有砖,判断上方能跌落砖的区间,加上dp[f-1][ll][rr](ll,rr为所判断出来的区间)即可,进行递归搜索。
判断跌落区间的话我是预处理了一下,使用p[i][j]存放
D - Blast the Enemy!
给出一个多边形,n(边数小于100)个点的坐标(绝对值小于100,是整数),求重心
题目很良心地给了矢量公式:其中COM(C)表示图形C的重心坐标
【计算几何】
题目很良心地给了计算公式
公式变形一下
也就是将多边形分成几个n-2三角形,对每个三角形分别求重心(三个坐标加起来除以3)和面积(叉积)
最后再除以三角形面积总和即可。
因为叉积分为正负,之间可以抵消,所以可以不必考虑三角形的选取问题。
I - Fruit Weights
还没有看这道题,据说
像这种大于小于的关系,使用差分约束系统比较合适
2015 UESTC Winter Training #4【Regionals 2008 :: Asia - Tehran】的更多相关文章
- 2015 UESTC Winter Training #6【Regionals 2010 >> North America - Rocky Mountain】
2015 UESTC Winter Training #6 Regionals 2010 >> North America - Rocky Mountain A - Parenthesis ...
- 2015 UESTC Winter Training #10【Northeastern Europe 2009】
2015 UESTC Winter Training #10 Northeastern Europe 2009 最近集训都不在状态啊,嘛,上午一直在练车,比赛时也是刚吃过午饭,状态不好也难免,下次比赛 ...
- 2015 UESTC Winter Training #8【The 2011 Rocky Mountain Regional Contest】
2015 UESTC Winter Training #8 The 2011 Rocky Mountain Regional Contest Regionals 2011 >> North ...
- 2015 UESTC Winter Training #7【2010-2011 Petrozavodsk Winter Training Camp, Saratov State U Contest】
2015 UESTC Winter Training #7 2010-2011 Petrozavodsk Winter Training Camp, Saratov State U Contest 据 ...
- 【关于服务器端SQL Server 2008的设置】 使其他客户端机可通过ODBC数据源可访问
服务器系统:Server 2003 数据库:SQL Server 2005 服务器配置:开启服务:server.workstation(这两个服务对于提供局域网共享有很大作用) 关闭防火墙 开启gue ...
- 2015-2016 Petrozavodsk Winter Training Camp, Nizhny Novgorod SU Contest (5/9)
2015-2016 Petrozavodsk Winter Training Camp, Nizhny Novgorod SU Contest B. Forcefield 题意 给你一维平面上n个镜子 ...
- 2015 ICL, Finals, Div. 2【ABFGJK】
[题外话:我......不补了......] 2015 ICL, Finals, Div. 2:http://codeforces.com/gym/100637 G. #TheDress[水] (st ...
- Petrozavodsk Winter Training Camp 2018
Petrozavodsk Winter Training Camp 2018 Problem A. Mines 题目描述:有\(n\)个炸弹放在\(x\)轴上,第\(i\)个位置为\(p_i\),爆炸 ...
- 2014-2015 Petrozavodsk Winter Training Camp, Contest.58 (Makoto rng_58 Soejima contest)
2014-2015 Petrozavodsk Winter Training Camp, Contest.58 (Makoto rng_58 Soejima contest) Problem A. M ...
随机推荐
- [转载]__type_traits
在STL中为了提供通用的操作而又不损失效率,我们用到了一种特殊的技巧,叫traits编程技巧.具体的来说,traits就是 通过定义一些结构体或类,并利用模板类特化和偏特化的能力,给类型赋予一些特性, ...
- 外边距叠加collapsing-margin
原载:Smallni | http://www.smallni.com/collapsing-margin/ 恩,margin叠加一直是个问题,也是我们一直会遇到的问题,很久以前就想把这个知识点整理下 ...
- Spring Cp30配置
1.配置db.properties <bean id= "propertyConfigurer" class="org.springframework.beans. ...
- md5实现
/** * @param str * @return */ public static String stringToMD5(String str, String encode) { try { by ...
- set_time_limit() 控制页面运行时间
当你的页面有大量数据时,建议使用set_time_limit()来控制运行时间,默认是30s,所以需要你将执行时间加长点,如 set_time_limit(300) ,其中将秒数设为0 ,表示持续运 ...
- Win7下启用IIS7
1.进入“控制面板-->程序”: 2.点击“打开或关闭Windows功能” 3.选择“Internet信息服务”相关选项,如下: 点击“确定”后,请稍等.. 5.启用成功后,可在浏览器访问:ht ...
- [Python笔记]第十篇:模块续
requests Python标准库中提供了:urllib等模块以供Http请求,但是,它的 API 太渣了.它是为另一个时代.另一个互联网所创建的.它需要巨量的工作,甚至包括各种方法覆盖,来完成最简 ...
- python学习之旅:array 转 list
最近学习python,记录学习的点滴. >>> import numpy as np >>> a = np.array([[1,2],[3,4]]) >> ...
- 2014 青年歌手大赛 AC
青年歌手大奖赛_评委会打分 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) To ...
- Python异常的使用
伪代码: try: 出错部分的代码...... except Exception as e: print '404网页' #Exception是所有错误类型的父类,包括所有出错信息 finally: ...