暴力也能过!!!

P1011 [NOIP1998 提高组] 车站

###### %%%% ### dalao
by MrszhuL @ 2018-03-14 19:36:17


66666666666666666666666666666666666666666666666666666666666666666666666666666666666666
by Root_YHR @ 2018-04-30 22:12:58


这是一道㵘题
by 蒟蒻lxy @ 2018-07-16 22:30:40


认真推了之后发现自己的代码还没有同学的暴解快 ## ORZ ```cpp #include "bits/stdc++.h" using namespace std; int a,n,m,x; int r[30],sc[30],xc[30]; int guess(int p) { r[1] = a;sc[1] = a; xc[1] = 0; r[2] = a;sc[2] = p; xc[2] = p; for(int i=3;i<=n-1;i++) { sc[i] = sc[i-1]+sc[i-2]; xc[i] = sc[i-1]; r[i] = r[i-1]+sc[i]-xc[i]; } if(r[n-1]==m) { return 1; }else { return 0; } } int main() { cin>>a>>n>>m>>x; for(int i=0;i<=m;i++) { if(guess(i) == 1) { printf("%d",r[x]); return 0; } } } ```
by 咸鱼小白 @ 2018-11-01 21:58:13


<body><p> 和楼主的思路一样,暴力穷举第二个站上车人数。这题时间限制不是很严苛【应当说再怎么严苛在这题能有的时间复杂度下都没什么用】 </p> <p> 我是这样的: </p> <pre> <p> #include<iostream> int main() { int a, n, m, x; std::cin>>a >>n >>m >>x; for(int i=0;i<=m;i++) { //std::cout<<"i="<<i<<"\n"; int mem; int t=0,u=0,l=0,ll=0; for(int j=1;j<n;j++) { if(j==1) { u=a; l=ll=0; } else if(j==2) { u=i; l=i; } else if(j==3) { u=a+i; l=i; } else**** { u=l+ll; } //std::cout<<"j="<<j<<"\n"; t+=u; t-=l; /*std::cout<<"t="<<t<<"\n"; std::cout<<"l="<<l<<"\n"; std::cout<<"ll="<<ll<<"\n"; std::cout<<"u="<<u<<"\n"<<"\n";*/ if(j==x) mem=t; ll=l; l=u; } if(t==m) { std::cout<<mem; return 0; } } } </p> </pre> <p> 那些注释是我的编译器问题,调试模块损坏所以人工调试留下的 </p>********
by 还没想好 @ 2019-07-27 10:34:14


好吧我以为给我那么一个编辑器就要把html标签用上,然后弄成了这样……
by 还没想好 @ 2019-07-27 10:35:04


牛逼
by 奥利给大爷 @ 2019-12-18 19:57:09


太厉害里
by 奥利给大爷 @ 2019-12-18 19:57:33


|