站外题40pts求助
  • 板块题目总版
  • 楼主GoodLuckCat
  • 当前回复3
  • 已保存回复3
  • 发布时间2024/7/13 10:25
  • 上次更新2024/7/13 11:41:17
查看原帖
站外题40pts求助
916579
GoodLuckCat楼主2024/7/13 10:25

https://oj.haizeix.com/problem/285

#285. 序列M小和

题目描述

给出一个 n×mn\times m 的矩阵,每行取一个元素,组成一个包含 nn 个元素的序列,一共有 mnm^n 种序列,求出序列和最小的前 mm 个序列的序列和。

输入

输入两个整数 n,mn,m,接下来输入矩阵。

输出

输出最小的前 mm 个序列的序列和。每两个数之间用空格隔开。

样例输入

2 3
1 2 3
2 2 3

样例输出

3 3 4

数据规模与约定

时间限制:1s1s

内存限制:256M256M

100%100\% 的数据保证 1≤n≤100,1≤m≤20001\le n\le100,1\le m\le2000

4040 分代码:

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int n,m;
    cin>>n>>m;
    vector<vector<int> >x(n,vector<int>(m));
    for(int i=0;i<n;i++)for(int j=0;j<m;j++)cin>>x[i][j];
	vector<int>d(n,0);
    long long f=0;
    vector<int>s;
    vector<int>q;
    for(int k=0;k<m;k++)
	{
        f=0;
        for(int i=0;i<n;i++)
		{
            f+=x[i][d[i]];
            s.push_back(x[i][d[i]]);
		}
        q.push_back(f);
        int g=1;
        for (int i=n-1;i>=0;i--)
		{
            d[i]=(d[i]+g)%m;
            g=d[i]==0?1:0;
        }
        s.clear();
    }
    sort(q.begin(),q.end());
    for(int i=0;i<m-1;i++)cout<<q[i]<<' ';
    cout<<q[m-1];
    return 0;
}

求调

2024/7/13 10:25
加载中...