题解CF66D
CF66D题目传送门
Part.1 思路
首先,一定要输出 个数。
不超过 位,是不是高精度?
众所周知, 的容纳范围为 至 , 位是完全不够的。
众所周知,高精度是万恶之源,我这个懒蛋是肯定不会打的(就是忘了板子了),所以我们必须把范围限制在 以下。
众所周知,这种题先找特殊条件,所以……我们先来扒一下题目。
如果 ,那么只有一个数,无法求 。
如果 ,题目要求 , 不为 ,且 ,一定无法满足。
如果 ,有解 。
如果 ,有解 。
如果 ,解更多,不列了。
所以,这段代码我们可以确定:
if(n<=2)cout<<-1;
接下来,讨论 的情况。
首先,我们要保证前两个数的最大公约数不为 。
这样的数对有很多,比如:
还要保证第三个数和第一、二个数的最大公约数都不为 。
这样的数对依然有很多,比如:
继续淘汰,要求三个数的最大公约数为 :
那如果再加上一个数呢?
继续……
也就是前两个数是 且第 个数的值为 就可以满足要求。
那何不打一下呢?
因为 ,最大值只会是 ,别说高精度了, 都用不上。
所以直接输出即可。
AC Code1:
#include<iostream>
using namespace std;
int n;
int main() {
cin>>n;
if(n<=2)cout<<-1;
else {
cout<<14<<endl<<35<<endl;
for(int i=1; i<n-1; i++)cout<<i*10<<endl;
}
return 0;
}
Part.2
你以为就这么简单?
上面代码的时间复杂度为 ,众所周知这个时间复杂度可以在 内的时间解决。
然而,我们这道题完全可以求最优解……
我这次盯上了数据范围……,打表好题……
于是通过上面的代码,我打出了一个表:
AC Code 2:
#include<iostream>
using namespace std;
int n;
int main(){
cin>>n;
switch(n){
case 1:cout<<"-1";break;
case 2:cout<<"-1";break;
case 3:cout<<"14\n35\n10";break;
case 4:cout<<"14\n35\n10\n20";break;
case 5:cout<<"14\n35\n10\n20\n30";break;
case 6:cout<<"14\n35\n10\n20\n30\n40";break;
case 7:cout<<"14\n35\n10\n20\n30\n40\n50";break;
case 8:cout<<"14\n35\n10\n20\n30\n40\n50\n60";break;
case 9:cout<<"14\n35\n10\n20\n30\n40\n50\n60\n70";break;
case 10:cout<<"14\n35\n10\n20\n30\n40\n50\n60\n70\n80";break;
case 11:cout<<"14\n35\n10\n20\n30\n40\n50\n60\n70\n80\n90";break;
case 12:cout<<"14\n35\n10\n20\n30\n40\n50\n60\n70\n80\n90\n100";break;
case 13:cout<<"14\n35\n10\n20\n30\n40\n50\n60\n70\n80\n90\n100\n110";break;
case 14:cout<<"14\n35\n10\n20\n30\n40\n50\n60\n70\n80\n90\n100\n110\n120";break;
case 15:cout<<"14\n35\n10\n20\n30\n40\n50\n60\n70\n80\n90\n100\n110\n120\n130";break;
case 16:cout<<"14\n35\n10\n20\n30\n40\n50\n60\n70\n80\n90\n100\n110\n120\n130\n140";break;
case 17:cout<<"14\n35\n10\n20\n30\n40\n50\n60\n70\n80\n90\n100\n110\n120\n130\n140\n150";break;
case 18:cout<<"14\n35\n10\n20\n30\n40\n50\n60\n70\n80\n90\n100\n110\n120\n130\n140\n150\n160";break;
case 19:cout<<"14\n35\n10\n20\n30\n40\n50\n60\n70\n80\n90\n100\n110\n120\n130\n140\n150\n160\n170";break;
case 20:cout<<"14\n35\n10\n20\n30\n40\n50\n60\n70\n80\n90\n100\n110\n120\n130\n140\n150\n160\n170\n180";break;
case 21:cout<<"14\n35\n10\n20\n30\n40\n50\n60\n70\n80\n90\n100\n110\n120\n130\n140\n150\n160\n170\n180\n190";break;
case 22:cout<<"14\n35\n10\n20\n30\n40\n50\n60\n70\n80\n90\n100\n110\n120\n130\n140\n150\n160\n170\n180\n190\n200";break;
case 23:cout<<"14\n35\n10\n20\n30\n40\n50\n60\n70\n80\n90\n100\n110\n120\n130\n140\n150\n160\n170\n180\n190\n200\n210";break;
case 24:cout<<"14\n35\n10\n20\n30\n40\n50\n60\n70\n80\n90\n100\n110\n120\n130\n140\n150\n160\n170\n180\n190\n200\n210\n220";break;
case 25:cout<<"14\n35\n10\n20\n30\n40\n50\n60\n70\n80\n90\n100\n110\n120\n130\n140\n150\n160\n170\n180\n190\n200\n210\n220\n230";break;
case 26:cout<<"14\n35\n10\n20\n30\n40\n50\n60\n70\n80\n90\n100\n110\n120\n130\n140\n150\n160\n170\n180\n190\n200\n210\n220\n230\n240";break;
case 27:cout<<"14\n35\n10\n20\n30\n40\n50\n60\n70\n80\n90\n100\n110\n120\n130\n140\n150\n160\n170\n180\n190\n200\n210\n220\n230\n240\n250";break;
case 28:cout<<"14\n35\n10\n20\n30\n40\n50\n60\n70\n80\n90\n100\n110\n120\n130\n140\n150\n160\n170\n180\n190\n200\n210\n220\n230\n240\n250\n260";break;
case 29:cout<<"14\n35\n10\n20\n30\n40\n50\n60\n70\n80\n90\n100\n110\n120\n130\n140\n150\n160\n170\n180\n190\n200\n210\n220\n230\n240\n250\n260\n270";break;
case 30:cout<<"14\n35\n10\n20\n30\n40\n50\n60\n70\n80\n90\n100\n110\n120\n130\n140\n150\n160\n170\n180\n190\n200\n210\n220\n230\n240\n250\n260\n270\n280";break;
case 31:cout<<"14\n35\n10\n20\n30\n40\n50\n60\n70\n80\n90\n100\n110\n120\n130\n140\n150\n160\n170\n180\n190\n200\n210\n220\n230\n240\n250\n260\n270\n280\n290";break;
case 32:cout<<"14\n35\n10\n20\n30\n40\n50\n60\n70\n80\n90\n100\n110\n120\n130\n140\n150\n160\n170\n180\n190\n200\n210\n220\n230\n240\n250\n260\n270\n280\n290\n300";break;
case 33:cout<<"14\n35\n10\n20\n30\n40\n50\n60\n70\n80\n90\n100\n110\n120\n130\n140\n150\n160\n170\n180\n190\n200\n210\n220\n230\n240\n250\n260\n270\n280\n290\n300\n310";break;
case 34:cout<<"14\n35\n10\n20\n30\n40\n50\n60\n70\n80\n90\n100\n110\n120\n130\n140\n150\n160\n170\n180\n190\n200\n210\n220\n230\n240\n250\n260\n270\n280\n290\n300\n310\n320";break;
case 35:cout<<"14\n35\n10\n20\n30\n40\n50\n60\n70\n80\n90\n100\n110\n120\n130\n140\n150\n160\n170\n180\n190\n200\n210\n220\n230\n240\n250\n260\n270\n280\n290\n300\n310\n320\n330";break;
case 36:cout<<"14\n35\n10\n20\n30\n40\n50\n60\n70\n80\n90\n100\n110\n120\n130\n140\n150\n160\n170\n180\n190\n200\n210\n220\n230\n240\n250\n260\n270\n280\n290\n300\n310\n320\n330\n340";break;
case 37:cout<<"14\n35\n10\n20\n30\n40\n50\n60\n70\n80\n90\n100\n110\n120\n130\n140\n150\n160\n170\n180\n190\n200\n210\n220\n230\n240\n250\n260\n270\n280\n290\n300\n310\n320\n330\n340\n350";break;
case 38:cout<<"14\n35\n10\n20\n30\n40\n50\n60\n70\n80\n90\n100\n110\n120\n130\n140\n150\n160\n170\n180\n190\n200\n210\n220\n230\n240\n250\n260\n270\n280\n290\n300\n310\n320\n330\n340\n350\n360";break;
case 39:cout<<"14\n35\n10\n20\n30\n40\n50\n60\n70\n80\n90\n100\n110\n120\n130\n140\n150\n160\n170\n180\n190\n200\n210\n220\n230\n240\n250\n260\n270\n280\n290\n300\n310\n320\n330\n340\n350\n360\n370";break;
case 40:cout<<"14\n35\n10\n20\n30\n40\n50\n60\n70\n80\n90\n100\n110\n120\n130\n140\n150\n160\n170\n180\n190\n200\n210\n220\n230\n240\n250\n260\n270\n280\n290\n300\n310\n320\n330\n340\n350\n360\n370\n380";break;
case 41:cout<<"14\n35\n10\n20\n30\n40\n50\n60\n70\n80\n90\n100\n110\n120\n130\n140\n150\n160\n170\n180\n190\n200\n210\n220\n230\n240\n250\n260\n270\n280\n290\n300\n310\n320\n330\n340\n350\n360\n370\n380\n390";break;
case 42:cout<<"14\n35\n10\n20\n30\n40\n50\n60\n70\n80\n90\n100\n110\n120\n130\n140\n150\n160\n170\n180\n190\n200\n210\n220\n230\n240\n250\n260\n270\n280\n290\n300\n310\n320\n330\n340\n350\n360\n370\n380\n390\n400";break;
case 43:cout<<"14\n35\n10\n20\n30\n40\n50\n60\n70\n80\n90\n100\n110\n120\n130\n140\n150\n160\n170\n180\n190\n200\n210\n220\n230\n240\n250\n260\n270\n280\n290\n300\n310\n320\n330\n340\n350\n360\n370\n380\n390\n400\n410";break;
case 44:cout<<"14\n35\n10\n20\n30\n40\n50\n60\n70\n80\n90\n100\n110\n120\n130\n140\n150\n160\n170\n180\n190\n200\n210\n220\n230\n240\n250\n260\n270\n280\n290\n300\n310\n320\n330\n340\n350\n360\n370\n380\n390\n400\n410\n420";break;
case 45:cout<<"14\n35\n10\n20\n30\n40\n50\n60\n70\n80\n90\n100\n110\n120\n130\n140\n150\n160\n170\n180\n190\n200\n210\n220\n230\n240\n250\n260\n270\n280\n290\n300\n310\n320\n330\n340\n350\n360\n370\n380\n390\n400\n410\n420\n430";break;
case 46:cout<<"14\n35\n10\n20\n30\n40\n50\n60\n70\n80\n90\n100\n110\n120\n130\n140\n150\n160\n170\n180\n190\n200\n210\n220\n230\n240\n250\n260\n270\n280\n290\n300\n310\n320\n330\n340\n350\n360\n370\n380\n390\n400\n410\n420\n430\n440";break;
case 47:cout<<"14\n35\n10\n20\n30\n40\n50\n60\n70\n80\n90\n100\n110\n120\n130\n140\n150\n160\n170\n180\n190\n200\n210\n220\n230\n240\n250\n260\n270\n280\n290\n300\n310\n320\n330\n340\n350\n360\n370\n380\n390\n400\n410\n420\n430\n440\n450";break;
case 48:cout<<"14\n35\n10\n20\n30\n40\n50\n60\n70\n80\n90\n100\n110\n120\n130\n140\n150\n160\n170\n180\n190\n200\n210\n220\n230\n240\n250\n260\n270\n280\n290\n300\n310\n320\n330\n340\n350\n360\n370\n380\n390\n400\n410\n420\n430\n440\n450\n460";break;
case 49:cout<<"14\n35\n10\n20\n30\n40\n50\n60\n70\n80\n90\n100\n110\n120\n130\n140\n150\n160\n170\n180\n190\n200\n210\n220\n230\n240\n250\n260\n270\n280\n290\n300\n310\n320\n330\n340\n350\n360\n370\n380\n390\n400\n410\n420\n430\n440\n450\n460\n470";break;
case 50:cout<<"14\n35\n10\n20\n30\n40\n50\n60\n70\n80\n90\n100\n110\n120\n130\n140\n150\n160\n170\n180\n190\n200\n210\n220\n230\n240\n250\n260\n270\n280\n290\n300\n310\n320\n330\n340\n350\n360\n370\n380\n390\n400\n410\n420\n430\n440\n450\n460\n470\n480";break;
}
}
时间复杂度 。
可为什么实际跑起来却比 慢呢?好玄学。
感谢各位在评论区 的大佬们~

浙公网安备 33010602011771号