CF #560 div3

碎碎念

只想着快了  细节考虑不周,补题时一直就奇怪当时怎么就没这么想呢,

还有题意,老是会遗漏,英文水平不够呀

还有特判问题,错误想法前的特判,改掉其他地方后特判也要改呀

对于数学规律,算出的公式看自己的解决思路来化简

写写前五题吧  后俩有空补一下

A:给定01字符串s,长度n,x,y, 0=<x<y<n;可任意对某位取反,问使得s % 10^x == 10^y需进行的最小操作数。

嘛 简单 保证s的倒数y位都为0就ok了嘛  然后倒数的 x~y位之间也都是0就可以了

嗯 搞搞, 过了,开心

早上一看 hacked了

哇 看了下代码  判断倒数第x位的时候顺手判断了一下该位是否为1, 为0则操作数++,其实保证了s没有前导0 ,x<n,那倒数x位前肯定有1存在,x位是啥就无所谓了 呜

扫描二维码关注公众号,回复: 6246821 查看本文章

B:看懂题意随便搞搞就出来了, 排个序,用l模拟每天要解决的问题数,>=l的安排进来,l再++,安排不进的就不管了 最后输出l-1

C:也是搞搞就行了 没啥要注意的呢

D:wa了好多发,最后发现问题出在特判上了 呜

题意:给定某数的除1和自身外的所有因子,找最小的该数,(不确保给定数据真的是某数的除1和自身外所有因子

简单,排个序,看因子个数奇偶性,若数据正确,a[i]*a[n-i+1] == a[i+1]*a[n-i] 一定成立,奇数个因子就会有个平方项,一起判断就好

特判:如果个数为1的话输出该数的平方就好

若判断后无误,就检查一下该数(a[0]*a[n-1])的所有因子是否都在给定数据里,其实判断sqrt(a[0]*a[n-1])项就好了

然后 然后 自信满满地交了,wa

检查n遍,愣是漏了特判那里,给个数据9 直接输出81了但应该输出-1的,还有因子3 27,呜

改过就好了

E:

找找规律就好了呢

时间浪费在题意理解上了

题意:给定数组长度n 及数组 a, b, 可对数组b任意排序,使得sum (1=<L<=r<=n) (L=<i<=r) a[i]*b[i] 最小

很简单嘛 a的位置不动,只改b的位置,公式也好理解,当L=1~n时, r=L~n, 对所有r 取 i=L~r 求sum a[i]*b[i] 

使sum最小的话,逆序匹配,a[ i ]最大匹配 b[ j ]最小,这样求和就最小啦

呵呵  刚开始理解错误,以为对每个L取值都可以重新排一次b数组,瞎搞了一下,发现测样例不对,一直调来调去都不对

开始输出数据,发现不对劲,

再看了两遍题目  好像b位置只能改一次 呜

最后计算公式 (n-i+1)*b[i]*a[i]*i

这样子 对a排序, 根据位置匹配就好了 wa

其实要想sum最小, b[i] 得和 a[i]*i*(n-i+1)匹配

i 和(n-i+1)都是固定值, 直接绑定a[i]就好了 a[i]*=i*(n-i+1)

wa

猜你喜欢

转载自www.cnblogs.com/op-z/p/10870884.html
今日推荐