ICPC2019徐州站 F. The Answer to the Ultimate Question of Life, The Universe, and Everything.

链接

点击跳转

题解

暴力枚举,打表

打表的时候别忘了开O3

打表代码

#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
#define iinf 0x3f3f3f3f
#define linf (1ll<<60)
#define eps 1e-8
#define maxn 1000010
#define maxe 1000010
#define cl(x) memset(x,0,sizeof(x))
#define rep(i,a,b) for(i=a;i<=b;i++)
#define drep(i,a,b) for(i=a;i>=b;i--)
#define em(x) emplace(x)
#define emb(x) emplace_back(x)
#define emf(x) emplace_front(x)
#define fi first
#define se second
#define de(x) cerr<<#x<<" = "<<x<<endl
using namespace std;
using namespace __gnu_pbds;
typedef long long ll;
typedef pair<int,int> pii;
typedef pair<ll,ll> pll;
ll read(ll x=0)
{
    ll c, f(1);
    for(c=getchar();!isdigit(c);c=getchar())if(c=='-')f=-f;
    for(;isdigit(c);c=getchar())x=x*10+c-0x30;
    return f*x;
}
unordered_map<ll,ll> tb;
bool flag[maxn];
set<ll> S;
int main()
{
    freopen("out.txt","w",stdout);
    ll i, j, k, x, M=5000;
    rep(i,-M,M)tb[i*i*i]=i;
    rep(i,-M,M)
    {
        if(i%50==0)cerr<<double(i+M)/(2*M)*100<<"%"<<endl;
        rep(j,i,M)
        {
            ll tmp = i*i*i+j*j*j;
            if(tmp+j*j*j>200)continue;
            if(tmp+M*M*M<0)continue;
            if(S.find(tmp) != S.end())continue;
            S.insert(i*i*i+j*j*j);
            rep(x,0,200)
            {
                if(flag[x])continue;
                ll k3 = i*i*i+j*j*j-x;
                if(tb.find(i*i*i+j*j*j-x) != tb.end())
                {
                    printf("else if(x==%lld)cout<<%lld<<' '<<%lld<<' '<<%lld<<endl;\n",x,i,j,-tb[k3]);
                    flag[x]=true;
                }
            }
        }
    }
    return 0;
}

提交代码

#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
#define iinf 0x3f3f3f3f
#define linf (1ll<<60)
#define eps 1e-8
#define maxn 1000010
#define maxe 1000010
#define cl(x) memset(x,0,sizeof(x))
#define rep(i,a,b) for(i=a;i<=b;i++)
#define drep(i,a,b) for(i=a;i>=b;i--)
#define em(x) emplace(x)
#define emb(x) emplace_back(x)
#define emf(x) emplace_front(x)
#define fi first
#define se second
#define de(x) cerr<<#x<<" = "<<x<<endl
using namespace std;
using namespace __gnu_pbds;
typedef long long ll;
typedef pair<int,int> pii;
typedef pair<ll,ll> pll;
ll read(ll x=0)
{
    ll c, f(1);
    for(c=getchar();!isdigit(c);c=getchar())if(c=='-')f=-f;
    for(;isdigit(c);c=getchar())x=x*10+c-0x30;
    return f*x;
}
int main()
{
    ll T=read();
    while(T--)
    {
        ll x=read();
        if(x==0)cout<<-5000<<' '<<0<<' '<<5000<<endl;
        else if(x==1)cout<<-5000<<' '<<1<<' '<<5000<<endl;
        else if(x==8)cout<<-5000<<' '<<2<<' '<<5000<<endl;
        else if(x==27)cout<<-5000<<' '<<3<<' '<<5000<<endl;
        else if(x==64)cout<<-5000<<' '<<4<<' '<<5000<<endl;
        else if(x==125)cout<<-5000<<' '<<5<<' '<<5000<<endl;
        else if(x==183)cout<<-4889<<' '<<976<<' '<<4876<<endl;
        else if(x==181)cout<<-4874<<' '<<974<<' '<<4861<<endl;
        else if(x==190)cout<<-4812<<' '<<-593<<' '<<4815<<endl;
        else if(x==111)cout<<-4793<<' '<<-2312<<' '<<4966<<endl;
        else if(x==161)cout<<-4767<<' '<<-2476<<' '<<4980<<endl;
        else if(x==2)cout<<-4373<<' '<<-486<<' '<<4375<<endl;
        else if(x==118)cout<<-4328<<' '<<383<<' '<<4327<<endl;
        else if(x==87)cout<<-4126<<' '<<-1972<<' '<<4271<<endl;
        else if(x==162)cout<<-4125<<' '<<-1417<<' '<<4180<<endl;
        else if(x==16)cout<<-4114<<' '<<-588<<' '<<4118<<endl;
        else if(x==92)cout<<-4052<<' '<<861<<' '<<4039<<endl;
        else if(x==127)cout<<-4034<<' '<<-3881<<' '<<4988<<endl;
        else if(x==128)cout<<-3989<<' '<<-726<<' '<<3997<<endl;
        else if(x==48)cout<<-3950<<' '<<-1247<<' '<<3991<<endl;
        else if(x==54)cout<<-3885<<' '<<-648<<' '<<3891<<endl;
        else if(x==160)cout<<-3874<<' '<<-1654<<' '<<3972<<endl;
        else if(x==170)cout<<-3834<<' '<<-2149<<' '<<4047<<endl;
        else if(x==198)cout<<-3752<<' '<<-1347<<' '<<3809<<endl;
        else if(x==153)cout<<-3736<<' '<<-695<<' '<<3744<<endl;
        else if(x==83)cout<<-3707<<' '<<1315<<' '<<3651<<endl;
        else if(x==155)cout<<-3693<<' '<<-1049<<' '<<3721<<endl;
        else if(x==119)cout<<-3677<<' '<<-1673<<' '<<3789<<endl;
        else if(x==163)cout<<-3423<<' '<<-2943<<' '<<4033<<endl;
        else if(x==91)cout<<-3389<<' '<<-2912<<' '<<3992<<endl;
        else if(x==17)cout<<-3331<<' '<<2195<<' '<<2977<<endl;
        else if(x==55)cout<<-3329<<' '<<1837<<' '<<3131<<endl;
        else if(x==36)cout<<-3223<<' '<<2358<<' '<<2731<<endl;
        else if(x==97)cout<<-3168<<' '<<-991<<' '<<3200<<endl;
        else if(x==134)cout<<-3013<<' '<<-1766<<' '<<3203<<endl;
        else if(x==109)cout<<-2948<<' '<<853<<' '<<2924<<endl;
        else if(x==197)cout<<-2867<<' '<<-1606<<' '<<3026<<endl;
        else if(x==179)cout<<-2839<<' '<<1503<<' '<<2691<<endl;
        else if(x==20)cout<<-2816<<' '<<-741<<' '<<2833<<endl;
        else if(x==120)cout<<-2804<<' '<<1219<<' '<<2725<<endl;
        else if(x==144)cout<<-2746<<' '<<-2552<<' '<<3342<<endl;
        else if(x==62)cout<<-2744<<' '<<-1561<<' '<<2903<<endl;
        else if(x==106)cout<<-2689<<' '<<-1165<<' '<<2760<<endl;
        else if(x==25)cout<<-2683<<' '<<1839<<' '<<2357<<endl;
        else if(x==89)cout<<-2514<<' '<<1953<<' '<<2036<<endl;
        else if(x==53)cout<<-2370<<' '<<1518<<' '<<2141<<endl;
        else if(x==45)cout<<-2369<<' '<<1709<<' '<<2025<<endl;
        else if(x==81)cout<<-2368<<' '<<-1719<<' '<<2638<<endl;
        else if(x==147)cout<<-2366<<' '<<1528<<' '<<2131<<endl;
        else if(x==70)cout<<-2359<<' '<<824<<' '<<2325<<endl;
        else if(x==101)cout<<-2327<<' '<<319<<' '<<2325<<endl;
        else if(x==200)cout<<-2318<<' '<<-638<<' '<<2334<<endl;
        else if(x==28)cout<<-2268<<' '<<-249<<' '<<2269<<endl;
        else if(x==126)cout<<-2212<<' '<<-419<<' '<<2217<<endl;
        else if(x==199)cout<<-2208<<' '<<508<<' '<<2199<<endl;
        else if(x==154)cout<<-2135<<' '<<-516<<' '<<2145<<endl;
        else if(x==26)cout<<-2107<<' '<<237<<' '<<2106<<endl;
        else if(x==98)cout<<-2101<<' '<<-1638<<' '<<2391<<endl;
        else if(x==78)cout<<-2080<<' '<<-829<<' '<<2123<<endl;
        else if(x==116)cout<<-1906<<' '<<-757<<' '<<1945<<endl;
        else if(x==187)cout<<-1885<<' '<<-1092<<' '<<2000<<endl;
        else if(x==90)cout<<-1803<<' '<<365<<' '<<1798<<endl;
        else if(x==100)cout<<-1797<<' '<<-903<<' '<<1870<<endl;
        else if(x==189)cout<<-1702<<' '<<-1403<<' '<<1974<<endl;
        else if(x==188)cout<<-1639<<' '<<318<<' '<<1635<<endl;
        else if(x==129)cout<<-1580<<' '<<-1238<<' '<<1801<<endl;
        else if(x==34)cout<<-1555<<' '<<-244<<' '<<1557<<endl;
        else if(x==159)cout<<-1534<<' '<<383<<' '<<1526<<endl;
        else if(x==88)cout<<-1390<<' '<<-1282<<' '<<1686<<endl;
        else if(x==18)cout<<-1373<<' '<<-1276<<' '<<1671<<endl;
        else if(x==169)cout<<-1354<<' '<<-1012<<' '<<1521<<endl;
        else if(x==135)cout<<-1351<<' '<<-629<<' '<<1395<<endl;
        else if(x==171)cout<<-1328<<' '<<891<<' '<<1178<<endl;
        else if(x==82)cout<<-1317<<' '<<847<<' '<<1188<<endl;
        else if(x==107)cout<<-1309<<' '<<947<<' '<<1117<<endl;
        else if(x==80)cout<<-1300<<' '<<-706<<' '<<1366<<endl;
        else if(x==60)cout<<-1201<<' '<<-163<<' '<<1202<<endl;
        else if(x==177)cout<<-1168<<' '<<-160<<' '<<1169<<endl;
        else if(x==108)cout<<-1165<<' '<<-948<<' '<<1345<<endl;
        else if(x==35)cout<<-1120<<' '<<-509<<' '<<1154<<endl;
        else if(x==136)cout<<-1116<<' '<<816<<' '<<946<<endl;
        else if(x==196)cout<<-1057<<' '<<-579<<' '<<1112<<endl;
        else if(x==57)cout<<-998<<' '<<361<<' '<<982<<endl;
        else if(x==61)cout<<-966<<' '<<668<<' '<<845<<endl;
        else if(x==65)cout<<-929<<' '<<403<<' '<<903<<endl;
        else if(x==117)cout<<-896<<' '<<-555<<' '<<962<<endl;
        else if(x==99)cout<<-893<<' '<<-622<<' '<<984<<endl;
        else if(x==43)cout<<-823<<' '<<-307<<' '<<837<<endl;
        else if(x==152)cout<<-805<<' '<<486<<' '<<741<<endl;
        else if(x==168)cout<<-802<<' '<<-574<<' '<<890<<endl;
        else if(x==51)cout<<-796<<' '<<602<<' '<<659<<endl;
        else if(x==46)cout<<-758<<' '<<-473<<' '<<815<<endl;
        else if(x==137)cout<<-758<<' '<<-428<<' '<<801<<endl;
        else if(x==79)cout<<-706<<' '<<-196<<' '<<711<<endl;
        else if(x==11)cout<<-695<<' '<<-641<<' '<<843<<endl;
        else if(x==56)cout<<-672<<' '<<505<<' '<<559<<endl;
        else if(x==10)cout<<-650<<' '<<-353<<' '<<683<<endl;
        else if(x==6)cout<<-637<<' '<<-205<<' '<<644<<endl;
        else if(x==71)cout<<-533<<' '<<401<<' '<<443<<endl;
        else if(x==151)cout<<-463<<' '<<215<<' '<<447<<endl;
        else if(x==37)cout<<-444<<' '<<-84<<' '<<445<<endl;
        else if(x==72)cout<<-432<<' '<<-104<<' '<<434<<endl;
        else if(x==69)cout<<-403<<' '<<134<<' '<<398<<endl;
        else if(x==21)cout<<-401<<' '<<-287<<' '<<445<<endl;
        else if(x==133)cout<<-399<<' '<<167<<' '<<389<<endl;
        else if(x==191)cout<<-377<<' '<<-215<<' '<<399<<endl;
        else if(x==150)cout<<-367<<' '<<260<<' '<<317<<endl;
        else if(x==174)cout<<-335<<' '<<-170<<' '<<349<<endl;
        else if(x==73)cout<<-335<<' '<<-146<<' '<<344<<endl;
        else if(x==146)cout<<-327<<' '<<-263<<' '<<376<<endl;
        else if(x==15)cout<<-265<<' '<<-262<<' '<<332<<endl;
        else if(x==93)cout<<-248<<' '<<-98<<' '<<253<<endl;
        else if(x==102)cout<<-239<<' '<<118<<' '<<229<<endl;
        else if(x==29)cout<<-233<<' '<<-69<<' '<<235<<endl;
        else if(x==9)cout<<-216<<' '<<-52<<' '<<217<<endl;
        else if(x==7)cout<<-169<<' '<<44<<' '<<168<<endl;
        else if(x==63)cout<<-161<<' '<<102<<' '<<146<<endl;
        else if(x==47)cout<<-141<<' '<<49<<' '<<139<<endl;
        else if(x==141)cout<<-139<<' '<<104<<' '<<116<<endl;
        else if(x==19)cout<<-95<<' '<<47<<' '<<91<<endl;
        else if(x==182)cout<<-90<<' '<<-29<<' '<<91<<endl;
        else if(x==138)cout<<-86<<' '<<-77<<' '<<103<<endl;
        else if(x==164)cout<<-66<<' '<<-59<<' '<<79<<endl;
        else if(x==123)cout<<-37<<' '<<-16<<' '<<38<<endl;
        else if(x==38)cout<<-27<<' '<<16<<' '<<25<<endl;
        else if(x==96)cout<<-22<<' '<<14<<' '<<20<<endl;
        else if(x==192)cout<<-20<<' '<<16<<' '<<16<<endl;
        else if(x==178)cout<<-13<<' '<<-10<<' '<<15<<endl;
        else if(x==115)cout<<-12<<' '<<8<<' '<<11<<endl;
        else if(x==12)cout<<-11<<' '<<7<<' '<<10<<endl;
        else if(x==24)cout<<-10<<' '<<8<<' '<<8<<endl;
        else if(x==145)cout<<-8<<' '<<-7<<' '<<10<<endl;
        else if(x==44)cout<<-7<<' '<<-5<<' '<<8<<endl;
        else if(x==105)cout<<-7<<' '<<-4<<' '<<8<<endl;
        else if(x==142)cout<<-7<<' '<<-3<<' '<<8<<endl;
        else if(x==3)cout<<-5<<' '<<4<<' '<<4<<endl;
        else if(x==186)cout<<-4<<' '<<5<<' '<<5<<endl;
        else if(x==124)cout<<-1<<' '<<0<<' '<<5<<endl;
        else if(x==132)cout<<-1<<' '<<2<<' '<<5<<endl;
        else if(x==66)cout<<1<<' '<<1<<' '<<4<<endl;
        else cout<<"impossible"<<endl;
    }
    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值