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 ...
 
随机推荐
- 纯蓝ICON_学习教程
 - underscorejs-find学习
			
2.5 find 2.5.1 语法: _.find(list, predicate, [context]) 2.5.2 说明: 对list集合的每个成员依次进行匹配(根据predicate迭代函数检测 ...
 - Maven 安装记
			
java初学者 昨天通m2e插件把maven项目导入eclipse的时候各种bug,看了各家技术博客,决定安装maven好好了解下. 安装maven也是一波三折的,先是看各种安装指导,结果环境变量都没 ...
 - javascript获得浏览器工作区域的大小
			
浏览器的窗口发生变化时会执行window.onresize方法,通过这个方法我们可以获得到浏览器工作区域的大小: window.onresize=function(){ bodyHeight = wi ...
 - git config --global core.excludesfile配置gitignore全局文件
			
Linux中,这时把全局要忽略的文件列表.gitignore放当前用户根目录下: git config --global core.excludesfile '~/.gitignogtire' Win ...
 - SQLServer -- 递归查询树结构表
			
需求 查询树结构表(如菜单类型表,文件夹类型表等)中一个数据节点下所有的子节点数据 声明临时表,并写入数据如下 DECLARE @tbl TABLE ( Id INT ,ParentId INT ,N ...
 - TCP回射客户程序:main函数
			
创建套接字,装填网际网套接字地址结构 创建一个TCP套接字,用服务器的IP地址和端口号装填一个网际网套接字地址结构 我们可从命令行参数取得服务器的IP地址 从头文件unp.h取得服务器的众所周知端口号 ...
 - 安装KornShell(KSH)
			
Korn shell 是一个unix上的shell 程序,主要用在各种unix系统上,比如:sun/oracle unix,AIX等.ksh是有贝尔实验室的David korn开发出来的,ksh结合了 ...
 - IOS--UIAlertView的使用方法详细
			
IOS--UIAlertView的使用方法详细 // UIAlertView的常用方法 // 标准样式 UIAlertView *oneAlertView = [[UIAlertView allo ...
 - 统计指定时间段的访问真正WEB页面(去除静态请求)的IP的TOP100排行
			
最近就在磨这个脚本以达到SEO同事要求哈. awk -v b=[21/Apr/2015:15:46 -v a=[21/Apr/2015:16:46 '$4 > b && $4 & ...