第5届ACM校赛—矩阵
2014-05-18 20:15
239 查看
矩阵
题目描述
给定一个nx m 的矩阵,每次操作,你可以对矩阵的某一个元素加上或减去一个整数值d,求最小的操作次数,使得矩阵的所有元素都相同,如果不能实现,输出-1。
输入
输入包含多组测试数据,对于每组测试数据:第一行为三个整数 ,
m≤500,1≤d≤10000)。
接下来 m 个整数,第 行第 个整数为ij(1 ij≤10)。
当n=m=d=0 时代表输入结束。
输出
对于每组测试数据,输出一个整数,为最小操作次数,如果不能实现,输出-1。64-bit,用long
long 定义,请不要使用__int64 和%I64d。
PS:要想找到最小的次数,只能让整个矩阵,变成中间大的数;
#include <iostream> #include <stdlib.h> #include <stdio.h> #include <string.h> #include <algorithm> using namespace std; int a[250001]; int cmp(const void *a,const void *b) { return *(int *)a - *(int *)b; } int main() { int n,m,s; while(scanf("%d%d%d",&n,&m,&s)!=EOF) { if(n==0&&m==0&&s==0) break; for(int i = 0;i<n*m;i++) scanf("%d",&a[i]); qsort(a,n*m,sizeof(a[0]),cmp); long long int sum = 0; int flag = 0; long long int mid = a[(n*m)/2]; for(int i = 0;i<n*m;i++) { if((mid-a[i])%s!=0) { flag = 1; break; } if(mid>a[i]) { sum += (mid - a[i])/s; } else if(mid<=a[i]) { sum += (a[i]-mid)/s; } } (flag==1)?puts("-1"):printf("%lld\n",sum); } return 0; }
相关文章推荐
- 【ACM】矩阵快速幂+快速幂+费马小定理
- ACM 矩阵乘法模板(T_T)+快速幂
- 记初次参加ACM校赛
- 简单计算 ( 山东科技大学第二届ACM校赛)
- (2015年郑州轻工业学院ACM校赛题)I 旋转图像
- 矩阵总结 ACM
- 山东理工大学第七届ACM校赛-G 飞花的传送门
- 湖南科技大学校赛 问题 H: ACM实验室招新啦!! 水题
- 【ACM】顺时针打印矩阵
- 山东理工大学第七届ACM校赛-经济节约 分类: 比赛 2015-06-26 10:34 19人阅读 评论(0) 收藏
- “师创杯”SDUT-ACM校赛正式赛-C~K玩游戏
- ACM 矩阵乘法 SPOJ AMR10E Stocks Prediction
- 武大校赛 26. Lost in WHU(矩阵快速幂)
- (2015年郑州轻工业学院ACM校赛题) J 堆
- 2017北京师范大学ACM校赛 J Just A String (KMP)
- 理工大学ACM平台题答案关于C语言 1172 C语言实验——矩阵下三角元素之和
- 2017 ACM/ICPC Asia Regional Shenyang Online E题【number number number】--矩阵快速幂与斐波那契数列
- [ACM] POJ 3233 Matrix Power Series (求矩阵A+A^2+A^3...+A^k,二分求和或者矩阵转化)
- 第13届广东工业大学ACM校赛L-用来作弊的药水
- 山东理工大学第七届ACM校赛-经济节约