此题能否打表找规律

P5308 [COCI2018-2019#4] Akvizna

```cpp #include<cstdio> #include<iostream> #include<fstream> #include<cmath> #include<cstring> #include<algorithm> using namespace std; #define Set(a) memset(a,0,sizeof(a)) #define F(i,a,b) for(register int i=a,i##end=b;i<=i##end;++i) #define UF(i,a,b) for(register int i=a,i##end=b;i>=i##end;--i) #define openf(a) freopen(#a".in","r",stdin);freopen(#a".out","w",stdout) #define re register #define ri re int #define il inline typedef long long ll; typedef unsigned long long ull; template<typename T> inline T rd(T& x) { T f=1;x=0;char c=getchar(); for(;!isdigit(c);c=getchar()) if(c=='-') f=-1; for(; isdigit(c);c=getchar()) x=(x<<3)+(x<<1)+(T)(c-'0'); x*=f; return x; } ll rd(){ll x;rd(x);return x;} inline int max(int a,int b){return a>b?a:b;} inline int min(int a,int b){return a<b?a:b;} const int inf=1<<30; struct frac { public: ll x,y;//x/y private: ll gcd(ll x,ll y){return y==0?x:gcd(y,x%y);} void yf(){if(y<0)x=-x,y=-y;ll a=gcd(abs(x),y);x/=a,y/=a;} public: frac(ll x=0,ll y=1):x(x),y(y){yf();} double todb(){return (double)x/(double)y;} frac operator=(frac b){x=b.x,y=b.y;return *this;} }; frac operator+(frac a,frac b){return frac(a.x*b.y+a.y*b.x,a.y*b.y);} frac operator-(frac a){return frac(-a.x,a.y);} frac operator-(frac a,frac b){return a+(-b);} frac operator*(frac a,frac b){return frac(a.x*b.x,a.y*b.y);} frac operator/(frac a,frac b){return frac(a.x*b.y,a.y*b.x);} frac operator+=(frac& a,frac b){return a=a+b;} frac operator-=(frac& a,frac b){return a=a-b;} frac operator*=(frac& a,frac b){return a=a*b;} frac operator/=(frac& a,frac b){return a=a/b;} bool operator>(frac a,frac b){return a.x*b.y>b.x*a.y;} bool operator<(frac a,frac b){return b>a;} bool operator>=(frac a,frac b){return !(b>a);} bool operator<=(frac a,frac b){return !(a>b);} bool operator==(frac a,frac b){return !(a<b)&&!(b<a);} bool operator!=(frac a,frac b){return (a<b)||(b<a);} const int N=1000; frac dp[N][N],sum[N];int from[N][N],n,k; int main() { cin>>n>>k;sum[0]=0; F(i,1,k) dp[i][i]=sum[i]=sum[i-1]+frac(1,i),from[i][i]=i-1; F(i,1,n) dp[1][i]=1; F(i,2,k) F(j,i+1,n) F(m,i-1,j-1) if(dp[i-1][m]+frac(j-m,j)>dp[i][j]) dp[i][j]=dp[i-1][m]+frac(j-m,j),from[i][j]=m; F(i,1,k){F(j,1,n) printf("%lld/%lld ",dp[i][j].x,dp[i][j].y);cout<<endl;} return 0; } ```
by WYXkk @ 2019-10-25 22:18:33


只要你有耐心打表,任何题都可以
by Andysun06 @ 2019-10-25 22:23:34


@[Andysun06](/space/show?uid=70299) 但我已经打完表但找不出规律
by WYXkk @ 2019-10-25 22:24:21


@[WYXkk](/space/show?uid=130151) 只要你有耐心找规律,任何题都可以找到(逃
by Andysun06 @ 2019-10-25 22:26:39


@[Andysun06](/space/show?uid=70299) 那您帮我找找,我generator都给你了(
by WYXkk @ 2019-10-25 22:27:31


这题不算是黑题吧?感觉也不是很难
by Andysun06 @ 2019-10-25 22:34:25


虽然我也不会
by Andysun06 @ 2019-10-25 22:35:57


@[Andysun06](/space/show?uid=70299) ~~我可否问一下如何做到入坑两年只刷红橙的~~ 盲猜小号
by He_Ren @ 2019-10-25 22:50:17


@[He_Ren](/space/show?uid=73687) 要有耐心
by Andysun06 @ 2019-10-25 23:19:16


@[He_Ren](/space/show?uid=73687) 打好基础才能往下学
by Andysun06 @ 2019-10-25 23:19:38


| 下一页