K-special Tables

CodeForces - 625C

人们经常做一些疯狂的事来凸显自己。有的人跳舞,有的人撩妹,有的人立志成为顶级程序猿(例如某peng),还有的人喜欢收集有趣的数学对象

Alice对上面的东西都很喜欢。现在她想要得到一张k-特殊表。一个大小为n*n的特殊表需要满足一下三个条件:

  • 1~n2之间的所有数都在表中出现恰好一次。
  • 每排内部的数递增排列。
  • 第k列的数之和尽可能的大

你的目标是帮助Alice找到至少一个n*n大小的k-特殊表。每排每列由1~n进行标号,每排按从上到下的顺序,每列按从左到右的顺序。

Input

第一行输入包含两个数:n和k(1 ≤ n ≤ 500, 1 ≤ k ≤ n)

Output首先输出第k列数字之和。

接下来输出的n行用于描述你所构造的表:第一行依次输出表中第一排的n个数,第二行依次输出表中第二排的n个数,以此类推。

如果存在多种答案,输出其中任意一种

Sample Input

Input
4 1
Output
28
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
 
===================
Input
5 3
Output
85
5 6 17 18 19
9 10 23 24 25
7 8 20 21 22
3 4 14 15 16
1 2 11 12 13
 
sol:较基础的构造,显然对于每行,第k个到第n个元素应该是最大的
#include <bits/stdc++.h>
using namespace std;
typedef int ll;
inline ll read()
{
ll s=;
bool f=;
char ch=' ';
while(!isdigit(ch))
{
f|=(ch=='-'); ch=getchar();
}
while(isdigit(ch))
{
s=(s<<)+(s<<)+(ch^); ch=getchar();
}
return (f)?(-s):(s);
}
#define R(x) x=read()
inline void write(ll x)
{
if(x<)
{
putchar('-'); x=-x;
}
if(x<)
{
putchar(x+''); return;
}
write(x/);
putchar((x%)+'');
return;
}
#define W(x) write(x),putchar(' ')
#define Wl(x) write(x),putchar('\n')
const int N=;
int n,m,a[N][N];
int main()
{
int i,j,Now,Sum=;
R(n); R(m);
Now=n*n;
for(i=;i<=n;i++)
{
for(j=n;j>m;j--) a[i][j]=Now--;
Sum+=Now; a[i][m]=Now--;
}
for(i=;i<=n;i++)
{
for(j=m-;j>=;j--) a[i][j]=Now--;
}
Wl(Sum);
for(i=;i<=n;i++,puts(""))
{
for(j=;j<=n;j++) W(a[i][j]);
}
return ;
}
/*
input
5 3
output
85
*/

codeforces625C的更多相关文章

随机推荐

  1. nodeJS---URL相关模块用法(url和querystring)

    nodeJS---URL相关模块用法(url和querystring) 一: URL模块: URL模块用于解析和处理URL的字符串,提供了如下三个方法: 1. parse 2. format 3. r ...

  2. Intel CPU 漏洞分析

    Intel CPU漏洞分析报告 预备知识 存储分级 由于计算机存储分级的特性(第一级:寄存器,第二级:高速缓存,第三级:内存,第四级:磁盘),每一级之间的访问速度差距高达数量级.所以处理器会将用到的数 ...

  3. Android学习之基础知识四-Activity活动2讲

    一.在活动(activity)中添加Toast显示: 1.Toast作用:Android系统提供的一种非常好的提醒方式,将一些短小的信息提供给用户,这些信息会在一段时间后自动消失,不会占用任何屏幕空间 ...

  4. 学习CSS布局 - box-sizing

    box-sizing 人们慢慢的意识到传统的盒子模型不直接,所以他们新增了一个叫做 box-sizing 的CSS属性. 当你设置一个元素为 box-sizing: border-box; 时,此元素 ...

  5. mqtt 客户端 基于Python

    这几天一直在搞安全通信,微信小程序,反向代理等等,为了能让自己对整个系统做到把控,主要是需要了解每一个细节的地方,所以今天花了3个小时的时间学习了Python,因为我要用它来做Http和WebSock ...

  6. C#搭建CEF(CEFGLUE) 环境。

    CEF(CEFGLUE)如果想做浏览器的,对这个应该不陌生了,相关资料执行百度了,现在写这文章这是按当前时间做一个环境搭建时所需要的资料的一个收集. 1:下载Xilium.CefGlue项目源码. 链 ...

  7. Java 中 LinkedList 和 ArrayList 的区别

    引自:https://www.cnblogs.com/huzi007/p/5550440.html ArrayList和LinkedList的大致区别如下:1.ArrayList是实现了基于动态数组的 ...

  8. LiveCharts文档-4基本绘图-3其他

    原文:LiveCharts文档-4基本绘图-3其他 4基本绘图-3其他 因为每个图表的使用方法大同小异,所以不再啰嗦重复,具体直接看这个链接里的介绍.原文链接 其他的图表类型有 基本堆叠图 基本条形图 ...

  9. Data Partitioning Guidance

    在很多大规模的解决方案中,数据都是分成单独的分区,可以分别进行管理和访问的.而分割数据的策略必须仔细的斟酌才能够最大限度的提高效益,同时最大限度的减少不利影响.数据的分区可以极大的提升可扩展性,降低争 ...

  10. ireportdesigner下载页面

    iReport主页:http://community.jaspersoft.com/project/ireport-designer iReport下载地址:http://sourceforge.ne ...