这两题都是比赛是想对了思路,但是因为代码各种写搓,导致最后都没有过。。
hdu 4407
对于1-n之间的数,有两种操作,1.求[x,y]间和p互质的数的和,2.把第x个数改成c
这题思路是单独考虑第2种操作带来的影响,然后把问题变成求1-n间和p互质和数的和,这个用容斥求就好。但是由于一个int 变量溢出。。导致wa了无数次。。
hdu 4415
宝剑初始耐久度是m,要杀死n个人,用宝剑杀死i需要消耗Ai耐久度,且可以附带不消耗耐久度杀死Bi个人,问最多消耗多少人,且此时耐久度消耗最小。
首先要把,n个人分成两类,Bi为0和Bi不为0,且如果杀死一个Bi不为0的,所有的Bi不会0的人都会杀死。(不会证。。)
这样只要枚举几个Bi不为0的人是用自己的宝剑杀死就好了,剩下的都用贪心来做。
这题wa的真心无语。。排序的时候本来两种人都是按Ai升序排的,结果我Bi不会0的人按照Bi来排了。。头脑发晕。。