自己没有想出,打算用挺麻烦的方法。。就不写了。
看别人的好好啊。。
转自http://blog.youkuaiyun.com/wang907553141/article/details/54636868
- #include<cstdio>
- #include<algorithm>
- #include<cstring>
- #define LL long long
- using namespace std;
- LL n,m,k,x,y;
- LL ans[110][110];
- int main()
- {
- while(~scanf("%lld%lld%lld%lld%lld",&n,&m,&k,&x,&y))
- {
- LL sum=0;
- memset(ans,0,sizeof(ans));
- for(int i=1;i<=n;i++)
- for(int j=1;j<=m;j++)
- ans[i][j]++,sum++;
- for(int i=n-1;i>=2;i--)
- for(int j=1;j<=m;j++)
- ans[i][j]++,sum++;
- LL t=k/sum;
- k=k%sum;
- for(int i=1;i<=n;i++)
- for(int j=1;j<=m;j++)
- ans[i][j]*=t;
- for(int i=1;i<=n&&k;i++)
- for(int j=1;j<=m&&k;j++)
- ans[i][j]++,k--;
- for(int i=n-1;i>=2&&k;i--)
- for(int j=1;j<=m&&k;j++)
- ans[i][j]++,k--;
- LL mmax=0,mmin=1LL*1e18;
- for(int i=1;i<=n;i++)
- for(int j=1;j<=m;j++)
- mmax=max(mmax,ans[i][j]),mmin=min(mmin,ans[i][j]);
- printf("%lld %lld %lld\n",mmax,mmin,ans[x][y]);
- }
- return 0;
- }
这是一个使用C++实现的程序,该程序通过复杂的循环和条件判断来处理输入的数据,并更新二维数组中的值。它首先读取输入参数,计算每个元素被访问的次数,然后根据指定的次数分配值给数组中的元素。

被折叠的 条评论
为什么被折叠?



