2015 UESTC Winter Training #4

Regionals 2008 :: Asia - Tehran

比赛开始时电脑死活也连不上WIFI,导致花了近1个小时才解决_(:зゝ∠)_

未完成:B E F G H I

A - String LD

给n(<=100)个互不相同的字符串(最长为100),然后进行stringld操作,就是每次操作把各个字符串的首个字符删去,直到

  1. 有字符串完全删去
  2. 存在两个字符串完全一致

问在最后一次操作之前有几次操作(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】的更多相关文章

  1. 2015 UESTC Winter Training #6【Regionals 2010 >> North America - Rocky Mountain】

    2015 UESTC Winter Training #6 Regionals 2010 >> North America - Rocky Mountain A - Parenthesis ...

  2. 2015 UESTC Winter Training #10【Northeastern Europe 2009】

    2015 UESTC Winter Training #10 Northeastern Europe 2009 最近集训都不在状态啊,嘛,上午一直在练车,比赛时也是刚吃过午饭,状态不好也难免,下次比赛 ...

  3. 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 ...

  4. 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 据 ...

  5. 【关于服务器端SQL Server 2008的设置】 使其他客户端机可通过ODBC数据源可访问

    服务器系统:Server 2003 数据库:SQL Server 2005 服务器配置:开启服务:server.workstation(这两个服务对于提供局域网共享有很大作用) 关闭防火墙 开启gue ...

  6. 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个镜子 ...

  7. 2015 ICL, Finals, Div. 2【ABFGJK】

    [题外话:我......不补了......] 2015 ICL, Finals, Div. 2:http://codeforces.com/gym/100637 G. #TheDress[水] (st ...

  8. Petrozavodsk Winter Training Camp 2018

    Petrozavodsk Winter Training Camp 2018 Problem A. Mines 题目描述:有\(n\)个炸弹放在\(x\)轴上,第\(i\)个位置为\(p_i\),爆炸 ...

  9. 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 ...

随机推荐

  1. HDU 4632 CF 245H 区间DP(回文)

    先说HDU 4632这道题,因为比较简单,题意就是给你一个字符串,然后给你一个区间,叫你输出区间内所有的回文子序列,注意是回文子序列,不是回文字串. 用dp[i][j]表示区间[i,j]内的回文子序列 ...

  2. Mysql 应该选择什么引擎

    对于如何选择存储引擎,可以简答的归纳为一句话:“除非需要用到某些INNODB 不具备的特性,并且没有其他办法可以替代,否则都应该选择INNODB 引擎”.例如:如果要用到全文索引,建议优先考虑INNO ...

  3. $().change事件

    change([[data],fn]) 当元素的value值发生改变时发生change事件 适用于: 文本域 text textarea和select元素 text textarea 元素失去焦点时发 ...

  4. Dapper快速学习

    Dapper快速学习 我们都知道ORM全称叫做Object Relationship Mapper,也就是可以用object来map我们的db,而且市面上的orm框架有很多,其中有一个框架 叫做dap ...

  5. javaWeb遍历获取session中的值

    //方法一:通过遍历的方法进行遍历 String FileName=""; HttpSession session=request.getSession();//获取session ...

  6. Hibernate的查询语言之HQL(一)——快速入门

    Hibernate提供异常强大的查询体系,使用Hibernat有多种查询方式可以选择:即可以使用Hibernate的HQL查询,也可以使用条件查询,甚至可以使用原生的SQL查询语句.不仅如此, Hib ...

  7. Ubiquitous Religions

    http://poj.org/problem?id=2524 这道题就是并查集. #include<cstdio> #include<cstring> #include< ...

  8. 哟西,CLOUDSTACK第一步,搞定

    安装了N十次,找个RESET SERVER的脚本.

  9. android 状态栏(StatusBar)

    一.SystemUI 概述 自 android2.2 开始 , 原本存在与 framework-res.apk 中的状态栏和下拉通知栏界面控制被分割出一个单独的 apk 文件 , 命名为 System ...

  10. Spring Boot集成Jasypt安全框架

    Jasypt安全框架提供了Spring的集成,主要是实现 PlaceholderConfigurerSupport类或者其子类. 在Sring 3.1之后,则推荐使用PropertySourcesPl ...