Difference between revisions of "2011-2012 ACM-ICPC Northeastern European Regional Contest (NEERC 11)"

From EOJ Wiki
Jump to navigation Jump to search
(Created page with "=NEERC 11= * 某题题解http://www.doc88.com/p-7364584446751.html solutions == Problem A == Solved . 00:34 == Problem B == Upsolved by oxx1108.(-16) 垃圾题目毁...")
 
Line 5: Line 5:
 
== Problem A ==
 
== Problem A ==
  
Solved . 00:34
+
Solved by dreamcloud. 00:22
  
 
== Problem B ==
 
== Problem B ==
  
Upsolved by oxx1108.(-16)
+
Solved by oxx1108. 00:42
 
 
垃圾题目毁我青春
 
 
 
题意:求题意比较难懂。(题意巨坑)
 
 
 
给一些物品,每个可以取或者不取,想要不大于$c$的最大物品重量和。
 
 
一开始随机有一个A序列(01串),每一位表示物品取还是不取。
 
 
 
每次给一个随机B序列的重量和,随机方式是在A序列上随机修改一位01。
 
 
 
每次有三个选项,可以拿新的B串代替A串,不做任何操作,或者结束操作直接返回(答案就为现在的B串)。
 
 
 
要求操作次数少于1000。
 
 
 
题解:直接先将01串变为全0,然后变为全1,然后就可以计算出每个物品的质量,状压算出最大状态,最后随机到答案。
 
 
 
由于没看到一开始A序列随机死活过不了。
 
  
 
== Problem C ==
 
== Problem C ==
  
Solved by Xiejiadong.02:53(+9)
+
Solved by Xiejiadong & oxx1108. 04:26(+1)
 
 
题意:给每个人分配一个相同的长度,使得每个人可以在自己的区间里面找出互不重叠的区间。
 
 
 
题解:用long double来二分答案,然后暴力枚举分母,找出分数的表示。
 
 
 
需要注意精度问题,wa到自闭。
 
  
 
== Problem D ==
 
== Problem D ==
  
Unsolved.
+
Solved by Xiejiadong. 01:12(+1)
  
 
题意:
 
题意:
Line 49: Line 25:
 
== Problem E ==
 
== Problem E ==
  
Solved by oxx1108.02:29(+1)
+
Solved by dreamcloud. 02:35(+1)
 
 
题意:给定一些砝码箱,每个砝码箱里有若干个10的次幂的砝码。求能够称出$x$至少需要几个箱子。
 
 
 
题解:从个位开始贪心放,讲所有能取的都扔进一个一个优先队列,每次都取最大的放即可。
 
忘了考虑1e18,wa了一发。
 
  
 
== Problem F ==
 
== Problem F ==
  
 
Unsolved.
 
Unsolved.
 
题意:
 
 
题解:
 
  
 
== Problem G ==
 
== Problem G ==
  
Solved by dreamcloud.02:01(+1)
+
Solved by Xiejiadong. 02:25
 
 
dreamcloud:罚时是不会数位dp的oxx贡献的。
 
 
 
题意:[0,n]中有多少个数满足k进制下,和-k进制下表达一样
 
 
 
题解:转换一下题意,就变成了一个数取k进制之后,$a_m,a_{m-1},……a_3,a_2,a_1,a_0$,要满足$a_m,,……,0,a_2,0,a_0$,即奇数位一定是0,数位dp一下。
 
  
 
== Problem H ==
 
== Problem H ==
  
Solved by dreamcloud.01:34
+
Unsolved.
 
 
题意:给你一个字符串s,求它有多少个子序列,满足重构之后是回文串。(重构指的是将子序列中的字符任意交换位置)
 
 
 
题解:子序列重构是回文,其实就是最多只有一个字母出现次数是奇数。利用hash异或和来维护前缀中每个字母出现的次数为奇还是为偶。从前往后扫,要么每个字母都是偶数,要么枚举一个字母出现奇数,只需要看前面该状态有多少个。类似于EOJ七月月赛。
 
  
 
== Problem I ==
 
== Problem I ==
  
Unsolved.
+
Solved by oxx1108. 01:27
  
 
题意:
 
题意:
Line 92: Line 49:
 
== Problem J ==
 
== Problem J ==
  
Solved by Xiejiadong. 03:59(+1)
+
Unsolve.
 
 
题意:从0出发,用$a$次$\pm 1$,$b$次$\pm 2$,$c$次$\pm 3$遍历所有的$0$到$a+b+c$点。
 
 
 
题解:先把$c$次$\pm 3$的处理掉。我们通过向右、向左、再向右三部分,把前面的一部分填满,并且最后填的一个的左边已经全部填满,右边全部没有填过
 
 
 
再向右一步一步填,剩下一个$\pm 1$用来在最后改变方向,剩下的$\pm 2$我们用过向右、转弯、向左来填满右边剩下的部分
 
 
 
注意各类情况的处理与细节问题
 
  
 
== Problem K ==
 
== Problem K ==
  
Unsolved.
+
Solved Xiejiadong. 00:51
 
 
题意:
 
 
 
题解:
 
  
 
== Problem L ==
 
== Problem L ==
  
[[File:QQ20180827-132716@2x.png|200px|thumb|right|左手路径]]
+
Unsolved.
 
 
Upsolved by Xiejiadong.
 
 
 
题意:给定一个点阵,点阵中本身存在障碍物,现在要求用一个最小的正方形填在没有障碍物的子矩阵中作为障碍,使得无法从$(1,1)$走到$(n,m)$,求这个最小正方形的边长和左上角的坐标。
 
 
 
题解:首先是两个概念,一张点阵中从$(1,1)$到$(n,m)$不再联通的条件是,那个正方形同时切断了图中的左手路径和右手路径
 
 
 
所谓左手路径就是从$(1,1)$开始一直向右,左手一直扶在墙上所走出的路径,如右图:
 
 
 
右手路径的解释正好与之相对应。
 
 
 
走左手路径的方式是:如果前进方向的左边一直有墙,一旦前面碰墙,右转;如果左边没有墙了,左转;如果左边和前面以及右边都有墙,掉头。右手路径的处理方式与之相反。
 
 
 
处理完了路径,我们只需要枚举我们要填正方形的左上角的左边,然后二分正方形的边长,具体二分是:
 
 
 
* 如果该边长所覆盖的区域本身有障碍,缩小边长
 
 
 
* 如果该边长所覆盖的区域没有左手路径或者右手路径,增大边长
 
 
 
这样一来,我们剩下的问题就是怎么$O(1)$的回答当前正方形区域有没有障碍和有没有左右手路径了
 
 
 
对有障碍和左右手路径的坐标分别标记,然后处理一下前缀和,就可以直接查询当前区间里面是否有障碍和左右手路径了
 

Revision as of 07:24, 30 August 2018

NEERC 11

Problem A

Solved by dreamcloud. 00:22

Problem B

Solved by oxx1108. 00:42

Problem C

Solved by Xiejiadong & oxx1108. 04:26(+1)

Problem D

Solved by Xiejiadong. 01:12(+1)

题意:

题解:

Problem E

Solved by dreamcloud. 02:35(+1)

Problem F

Unsolved.

Problem G

Solved by Xiejiadong. 02:25

Problem H

Unsolved.

Problem I

Solved by oxx1108. 01:27

题意:

题解:

Problem J

Unsolve.

Problem K

Solved Xiejiadong. 00:51

Problem L

Unsolved.