题解 P1218 【[USACO1.5]特殊的质数肋骨 Superprime Rib】
看到有人用八重循环做,还写了8个if语句
其实没有那么麻烦,暴力又时也能体现出技术的美
记得小学的信奥老师讲:这种n重循环是玩不动暴力的
我:我就玩暴力怎么了
可以用递归控制循环次数,不必一一判断了
而且递归可以剪枝啊
其他思路和别人基本一样,但真的不是dfs qwq
代码:
#include
using namespace std;
long long n;
inline bool isprime(long long x)//质数判断
{
if(x==1) return 0;
for(int i=2; i*i<=x; i++)
if(x%i==0) return 0;
return 1;
}
inline void Make(int k,int now)//递归控制循环次数
//看到那个inline了吗,非函数用不了这个qwq
{
if(k==0)//如果循环到了层数就退出
{
cout<>n;
Make(n,0);
return 0;
}
qwq就是这样辣(484比dfs短好多,还没有压行呢,而且应该不是正解)
(这是压行的)
#include
using namespace std;
long long n;
inline bool isprime(long long x){ if(x==1) return 0; for(int i=2; i*i<=x; i++) if(x%i==0) return 0; return 1; }
inline void Make(int k,int now){ if(k==0) { cout<>n; Make(n,0); return 0; }
各位886