日本春令营在线比赛第一天总结

日本春令营在线比赛第一天总结
第一天我从9点就开始了比赛,首先我注册了账号,然后就看到了题目。第一天有3道题,其中每一道题都是传统题,提着的心总算放了下来——我还怕出现别的类型的题型。我将题目的pdf和附件下载到电脑上,开始了看题。由于某种原因,题目只有日文和英文两种类型,我选择了英文。

一、building4
第一道题目叫做building4,题目的大概意思是:有一条路,上面准备修 2 n 2n 2n个建筑物,其中每个建筑物有两个方案,如果用第一个方案(方案 A A A),就得花 a i a_i ai元;如果用第二个方案(方案 B B B),就得花 b i b_i bi元。规定使用 A A A方案的次数必须等于 n n n,使用 B B B方案的次数也必须等于 n n n。设 c i c_i ci是选择的 A A A B B B方案的钱,则必须满足 c i < c i + 1 c_i < c_{i+1} ci<ci+1 ( 1 ≤ i ≤ 2 n − 1 ) (1\leq i\leq 2n-1) 1i2n1。要求输出方案。

这是这道题的子任务和数据:
D1T1
我先想做子任务 1 1 1,就是用搜索来做,先枚举两个方案,然后判断 A A A方案的次数是否等于 B B B方案的次数,如果等于,就输出方案。
但是接着一想这种搜索的时间是 O ( 2 2 n ) = O ( 4 × 2 n ) O(2^{2n})=O(4×2^{n}) O(22n)=O(4×2n),如果 n = 2000 n=2000 n=2000可定会爆的,甚至连 n = 30 n=30 n=30都会爆。好吧,我只能另辟蹊径了。最后我以 0 0 0分告终。
虽然比赛结束之后我仍未想到方法,但是这道题是最简单的——对于这次比赛来说。
二、hamburg
第二题叫做hamburg,这道题的题目大意是:有 N N N个矩形,现在要找到 K K K个位置,满足这 K K K个位置在这 N N N个矩形中,保证数据一定有方案。现在要求任意输出一种方案。
子任务与数据如下:
D1T2
这道题我的思路是进行枚举搜索,但是发现这个矩形的坐标竟然达到了 1 0 9 10^9 109,这种情况进行枚举不是找死吗,虽然我打了一个暴力,但是交上去却运行时错误,看来这道题不能暴力。我在思考能否做子任务 1 1 1,因为 K = 1 K=1 K=1,所以应该可以找规律,可惜我没有想到办法,这题又以 0 0 0分告终。
难道我只能得 0 0 0分吗,我问自己,虽然题目超级超级超级难,但是我一定要拿一点分。
三、Sweeping
第三道题叫做Sweeping。
题目大意:在一个腰为 N N N的等腰直角三角形中,有一些垃圾,现在要扫出这些垃圾,其中有两种方法(方法 H H H和方法 V V V),现在要求第 P j P_j Pj个垃圾 ( 1 ≤ j ≤ Q ) (1\leq j\leq Q) 1jQ的坐标,这里 Q Q Q代表询问数。

这道题的子任务与数据也都很变态,如下:
D1T3
看了数据后,我决定要将子任务 1 1 1做出来,并尝试子任务 2 2 2。子任务 1 1 1的数据小,我很快就有了一个思路,这个思路的时间复杂度为 O ( M Q ) O(MQ) O(MQ),可以过。我花了 10 10 10分钟就把代码打了出来,试了几个样例都完全正确,这下我放心了。我把代码交到比赛网站上,开始等待结果。过了 1 1 1分钟左右,不出我所料,我成功的拿到了 1 1 1分。虽然说一分甚少,但是我觉得已经足够了。
我开始想如何优化我的程序,首先我想到的是用堆进行优化,但是我一时间没想到如何编写代码,所以我又开始想另一个方法。我注意到子任务 3 3 3里面有条件 X j ≤ X j + 1 X_j\leq X_{j+1} XjXj+1, Y j ≥ Y j + 1 Y_j\geq Y_{j+1} YjYj+1 ( 1 ≤ j ≤ M − 1 ) (1\leq j\leq M-1) (1jM1),就感觉可以拿到 11 11 11分了,但是,后面我绞尽脑汁也没有想到如何优化。
四、对第一天的总结
我虽然拿到了 1 1 1分,排名也是几百名,但是我心满意足,毕竟我只是去体验罢了。后来我才听说,这个比赛是国家队水平的——我才小学生,能做出什么吗?
我一心盼想明天的比赛,希望不会一天比一天难,我更希望明天有答案提交题——这可以使我拿到很多分。
第二天加油!

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值