NOI普及组第三次线上测试总结兼题解

T1:

题面:

在这里插入图片描述

题解:

用string记录名字,再输入求救字符串,每看到s就判断前两是否为so,如果是就ans++,最后判断最大输出。

分数:

估分:100
实际:100

T2:

题面:

在这里插入图片描述

题解:

普通的dfs,就像细胞那样,值得一提的是我的判断:我用了一个数组把每个星座的大小记录起来,然后遍历一遍,判重输出答案。

分数:

估分:100
实际:50
失分:

就是错在我的那个判断,我的判断方法会使最后一种星系没被判断到,多判断一个就ok了。

T3:

题面:

在这里插入图片描述

题解:

暴力50%(不过我50不是暴力,而是数据开小了):

把它当成一个无脑 的暴力01背包问题,把 k i k_i ki a i a_i ai当成单纯的 k i k_i ki a i a_i ai,时间复杂度为O( k i k_i ki* a i a_i ai* t i t_i ti)。

二进制优化背包100%:

如果想让 k i k_i ki a i a_i ai不是单纯的 k i k_i ki a i a_i ai,那就需要二进制优化

首先,我们知道20+21+……2n=2n+1-1,且用20,21……2n,可以组成2n+1以下的所有整数,且绝不超2n+1
然后,根据上面的的定理,我们就能得到2n+1-1的优化,但别的呢???
我们再放一个 k i k_i ki-(2n+1-1),再配上前面的就可以组成别的数了。

放一个二进制优化的代码:
		int q=read(),p=read(),k=1;
		while(k<=p){
			w[++w[0]]=k*q;
			p-=k;
			k*=2;
		}
		if(p!=0)
		w[++w[0]]=p*q;

分数:

估分:100
实际:50
失分:

数据开小了


总结:

这次比赛本来可以AK的,但实在是太不小心了,二,三题都错在一点细节,数据范围这个下次一定注意,如果再犯错了,就发40次古诗。
但这个像第二题一样的细节问题我也经常犯,我也有验算数据,但还是错,请问各位有没什么好的方法给我参考参考。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值