首页 > 代码库 > HDU 4228 Flooring Tiles 反素数
HDU 4228 Flooring Tiles 反素数
推出了结论,万万没想到最后用搜索。。
还想dp来着。。
#include <cstdio> #include <cstring> #include <iostream> #include <algorithm> #include <math.h> #include <set> #include <vector> #include <map> using namespace std; #define ll long long #define N 1000005 ll prime[N],primenum;//有primenum个素数 math.h void PRIME(ll Max_Prime){ primenum=0; prime[primenum++]=2; for(ll i=3;i<=Max_Prime;i+=2) for(ll j=0;j<primenum;j++) if(i%prime[j]==0)break; else if(prime[j]>sqrt((double)i) || j==primenum-1) { prime[primenum++]=i; break; } } ll n, ans, sum; void dfs(ll a,ll s, ll t, ll l){ if(s>n<<1)return ; if(s==2*n || s==2*n-1){ ans = min(ans, a); return ; } if(t>20)return; for(ll i = 1; i <= l; i++) { a *= prime[t]; dfs(a,s*(i+1), t+1,i); } } int main(){ ll i,j,u,v; PRIME(100); while(cin>>n, n) { ans = 1e18; dfs(1,1,0,60); cout<<ans<<endl; } return 0; }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。