“光庭杯”第五届华中北区程序设计邀请赛 暨 WHU第八届程序设计竞赛(部分解题报告)

这次做的比较郁闷,比赛的时候老是出这样那样的问题,卡题卡的要死。最终只做出三道,赛后静下心来我和队友一共又做出4道,要是比赛有这种状态我们的排名就好多了。

现在说说题目:

 

1001(hdu3361):ASCII。根据ASCII码,输出对应的字符串,有个trick就是不用换行。

 

1002(hdu3362):Fix。解法:状态压缩dp,设dp[i]表示状态i(状态i表示固定点的状态,在二进制下的位上,0表示没固定,1表示固定)下用的费用最小,目标状态就是2^n-1。然后就是从初始状态(就是固定的点对应的状态)dp过程,

状态方程:dp[i]=min(dp[i-j]+cost[j]);j表示i状态下最后加进来固定的所对应的状态,cost[j]表示加进来的费用。

于是很好写了。

 

1003(hdu3363):Ice-sugar Gourd。解法:贪心。表示比赛基本没看这题,大脑太混乱了。赛后确实想过贪心,但ms不会证明,下面贴一份superlong大牛的证明过程吧:我们首先拿到这么个结论然后再来证明(究竟怎么想到这个结论的,估计是靠大神们的经验了)。结论是:我们把字符串围成一个环(环长度为len),那么总存在一种切法,使得一刀把换切成2半并且2半的H 和 T的数目分别相等。证明:我们首先任意切一刀(假设是竖直的切下来)那么设左半圆的H个数为x个(我们只讨论H的个数),则右边的H个数为n-x(假设总共n个,n为偶数),我们假设x < n-x(当然可以切成这样)那么我们可以尝试着做这么一件事情:顺时针或者逆时针移动我们的切线,那么原来有x个H的一方最终能变成n-x(旋转180°)。我们还可以发现x的变化总是+1 或者 -1,从整数角度来看,x的变化是连续的,并且 x < n/2 < n-x 那么从x变到n-x中间通过若干+1 ,-1的变化总能得到n/2这么个值。从数学角度来说,连续函数,f(x)=a,f(y)=b,那么一定存在z使得f(z)=(a+b)/2(连续函数的介值性定理),所以我们总能找到一种切法,使得一刀切得len/2长度穿中有n/2个H,因为H的总个数为n个,所以T的个数为len-n 所以在len/2的串中有 len/2 - n/2 即 (len-n)/2个 T,所以命题得证。于是最多是切两刀,很好写了。

 

1004(hdu3364):Lanterns。解法:高斯消元。表示比赛一开始就做这题,并且赛后才发现我们原来可以成为第一个ac此题的队,但是却没有,原因是没在每个给定的目标状态时进行矩阵的初始化。。。赛后突然发现了这个bug,改后ac。讲讲具体解法:一行一个等式,表示一个灯的状态,在等式的左边,受m个开关控制那么在相应开关位置上赋值为1,其他为0,那么在右边表示灯的目标状态如果目标状态和初始状态不同,则需要改变,赋值为1。剩下的就是高斯消元解方程,求变元。ans=2^k,k表示变元数。于是完成。

 

1005(hdu3365):New Ground。解法:叉积+点积。队友写的,表示不会。ps:队友解这题的解题报告:http://hi.baidu.com/%D2%D5%C1%D6010/blog/item/30867ec99fdcf11b7f3e6fd0.html

 

1006(hdu3366):不会。

 

1007(hdu3367):Pseudoforest。解法:并查集。队友写的。

 

1008(hdu3368):Reversi。解法:模拟。这题比赛的时候差点没做出,队友很快就写完了但是连续提交几次都wa了,我在1004悲剧过后,也写了一下这题,也wa。后来正烦着的时候,头脑中突然闪过一个trick

b * * * b

   w* w

   * * *   像这种情况明显就没考虑,后来队友改后ac。

 

后面三道都不会了,悲剧。。。

这次要是能把上述题目在比赛中写出来那就舒服了,哎~!,还是太菜了,比赛也没经验,多加训练!!!

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值