您好,欢迎来到品趣旅游知识分享网。
搜索
您的当前位置:首页codeforces 1043 F

codeforces 1043 F

来源:品趣旅游知识分享网

 

题意:给出n个数,问你从中选出至少多少个数才能使它们的为1,如果无解输出-1。

 

题解:看上去一副不可做的样子。。

我们设f[i][j]表示选了i个数,是否能使它们的为1。

转移有点麻烦,不能用0/1来表示,应该用方案数来表示(因为有倍数的问题)。

但这样的时间复杂度看上去是n^2*sqrt(n)的。但仔细观察,你会发现,如果一定有解,那么你每次多选一个数的时候,必然会将它们的至少除以2,然后300000的范围的话你就只要最多做6/7次(不太清楚),也就是选这么几个数,就能使变为1辣。

时间复杂度O(7*n*sqrt(n))

 

 

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- pqdy.cn 版权所有 赣ICP备2024042791号-6

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务