njupt_oj:简单矩阵 :超时,求高效算法
来源:互联网 发布:淘宝客返利程序 编辑:程序博客网 时间:2024/06/18 00:16
A.简单矩阵
时间限制(普通/Java):1000MS/3000MS 运行内存限制:65536KByte
总提交:303 测试通过:17
总提交:303 测试通过:17
描述
有一个n*n的矩阵,把1~k的自然数按从上到下从左到右的顺寻填进去,当填完k个之后就从1继续开始,直到把矩阵填满。如果我们把每一个从左到右的横行和从上到下的竖列看做一个完整的数的话,那么最后就得到了2*n个这样的数(例如如果从上到下的5个数依次是10,20,30,40,50,那么这一列得到的数就是1020304050)。现在请求出这些数中的最大值。
输入
第一行为一个正整数T,表示有T组数据
每组数据为两个正整数 n ,k (n<=10000,k<=100)
输出
一个正整数m表示最大值
样例输入
3
1 1
2 3
10 100
样例输出
1
31
919293949596979899100
提示
第一个矩阵是 1
第二个矩阵是 1 2
3 1
n可能会很大,所以不要尝试开一个n*n的数组
#include<stdio.h>#include<stdlib.h>#include<string.h>int t,n,k;char a[30005],tt[5],max[30005];void fenjie(int x){ ultoa((unsigned long)x,tt,10);}void charu(int x){ int i,j; fenjie(x); strcat(a,tt);}int main(){ int i,j; int tem; scanf("%d",&t); while(t--) { scanf("%d%d",&n,&k); tem=1; max[0]='\0'; for(i=0;i<n;i++) { a[0]='\0'; for(j=0;j<n;j++) { charu(tem); tem=tem%k+1; } if(strlen(a)>strlen(max)) strcpy(max,a); else { if(strlen(a)==strlen(max)) if(strcmp(a,max)>0) strcpy(max,a); } } for(i=0;i<n;i++) { tem=i%k+1; a[0]='\0'; for(j=0;j<n;j++) { charu(tem); tem=(tem+n-1)%n+1; } if(strlen(a)>strlen(max)) strcpy(max,a); else { if(strlen(a)==strlen(max)) if(strcmp(a,max)>0) strcpy(max,a); } } printf("%s\n",max); } return 0;}
0 0
- njupt_oj:简单矩阵 :超时,求高效算法
- 求最大公约数和最小公倍数的最简单 高效的算法
- 求高效算法
- 【子矩阵】【高效算法设计】
- NOI 1101. 子矩阵求和(高效方法,解决超时问题)
- 矩阵求逆的算法
- 矩阵求逆算法(Chapter28)
- 【算法】矩阵快速求幂
- Warshall算法求道路矩阵
- 矩阵求逆常见算法
- 矩阵的简单算法
- 基于矩阵运算引擎高效搜索算法
- 简单算法 简单矩阵输出
- 【算法之高效求素数】浅析求素数算法
- 求最大、最小值的高效算法
- (转)高效算法求逆序数
- 一种高效的求平均数的算法
- 求n次方的高效算法
- 程序缘 Flex AIR之旅 --第四章 搭建主工程文件
- Subsets II
- java基础10
- **Leetcode_distinct-subsequences
- 详细解说 STL 排序(Sort)(转载)
- njupt_oj:简单矩阵 :超时,求高效算法
- 用lingo12求解二次规划问题
- unity3D游戏开发四之创建基本游戏场景一
- Debian下安装Mozilla版本的Firefox等软件
- memcache研究笔记 之 多线程接入的交互
- 给程序员简历的一些建议
- codechef:April Challenge 2014: Cards, bags and coins
- C++[算法]用数组模拟约瑟夫问题,即 N个人围成一圈,顺时针每数到给定K值的人出列,直到剩下最后一个人,求出圈人的序号顺序
- ios强制横屏