题目链接:http://codeforces.com/contest/758/problem/C

题意:给定N*M矩阵的教室,每个位置都有一个学生,Sergei坐在[X,Y],然后老师会问K个问题,对于行而言问的顺序是从第一行,第二行。。。第N行,第N-1行。。。第二行,第一行然后重复。对于列而言问的顺序都是从左到右,现在问你最后问完K个问题后,被提问的最多的同学的次数是多少,被提问的最少的同学的次数是多少,Sergei被提问的次数是多少。

思路:由于k的范围太大,所以不能一个一个模拟,考虑下循环节。 我们以1.2.3...n.n-1...3.2位一个循环节,那么除了第一行和最后一行的人被问过一次之外,中间的都被问过两次,一次循环的人数为(n-2)*m,所以共循环了k/(n-2)*m次,剩余的(不超过(n-2)*m个)直接暴力模拟即可,最后再扫一遍即可得到答案。

注意当n=1或者n=2时要特殊处理。

import java.io.PrintWriter;
import java.util.*; public class Main {
public static final int MAXN=100+5;
public static long v[][]=new long [MAXN][MAXN];
public static void main(String[] args) {
Scanner cin = new Scanner(System.in);
PrintWriter out = new PrintWriter(System.out);
int n=cin.nextInt(),m=cin.nextInt();
long k=cin.nextLong();
int x=cin.nextInt(),y=cin.nextInt();
for(int i=0;i<MAXN;i++){
Arrays.fill(v[i], 0);
}
if(n==1||n==2){
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
v[i][j]=k/(n*m);
}
}
k=k%(n*m);
for(int i=1;i<=n&&k>0;i++){
for(int j=1;j<=m&&k>0;j++){
v[i][j]++; k--;
}
}
}
else{
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
if(i==1||i==n){
v[i][j]=k/((n+n-2)*m);
}
else{
v[i][j]=k/((n+n-2)*m)*2;
}
}
}
k=k%((n+n-2)*m);
for(int i=1;i<=n&&k>0;i++){
for(int j=1;j<=m&&k>0;j++){
v[i][j]++; k--;
}
}
for(int i=n-1;i>=1&&k>0;i--){
for(int j=1;j<=m&&k>0;j++){
v[i][j]++; k--;
}
}
}
long maxv=-1,minv=Long.MAX_VALUE;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
maxv=Math.max(maxv,v[i][j]);
minv=Math.min(minv, v[i][j]);
}
}
out.println(maxv+" "+minv+" "+v[x][y]);
cin.close();
out.flush();
}
}

最新文章

  1. git 教程(13)--创建与合并分支
  2. Excel使用技巧总结
  3. LSA,pLSA原理及其代码实现
  4. junit批量测试
  5. 关于iOS测试机个数上限的详细规则
  6. tomcat 服务器全解
  7. struct--------构造函数对结构体初始化的影响
  8. DDMS files not found: tools\hprof-conv.exe
  9. 如何写一个数据库How do you build a database?(转载)
  10. SVN更改登录用户(转)
  11. Windows 8 应用开发 - 磁贴
  12. sql sever[基本] &#39;&#39;增删改&#39;&#39; 随笔
  13. 优秀的电商平台Jshop栗子
  14. maven项目自动创建src/main/resources等四个资源文件夹
  15. Class AtomicInteger
  16. anglar cli的 rxjs_1.of is not a function
  17. nginx test
  18. BestCoder Round #29——A--GTY&#39;s math problem(快速幂(对数法))、B--GTY&#39;s birthday gift(矩阵快速幂)
  19. HDU 5150 Sum Sum Sum 素数
  20. UVa 1615 Highway (贪心,区间选点问题)

热门文章

  1. 一波儿networkx 读写edgelist,给节点加attribute的操作
  2. 【POJ2893&amp;HDOJ6620】M &#215; N Puzzle(n*m数码判定)
  3. php函数名前添加&amp; 函数的引用返回
  4. Oracle命令行模式,批量执行SQL脚本
  5. Jenkins 添加新用户
  6. python学习之路---day16--面向对象
  7. time in china
  8. 16/7/14-MySQL-关键字
  9. 安卓中java和js如何交互
  10. github转gitee