Sequence

Posted hhyx

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Sequence相关的知识,希望对你有一定的参考价值。

# 题意
m个序列,每个里面包含n个非0整数,
现在可以从每个序列中选择一个数字形成具有m个整数的序列
总共有n^m种序列,计算每个序列中的数字之和,得到n^m个值,求这些序列和中的最小的n个值

# 题解

即从m个里面每个选一个,输出最小的n个和

分组,每次都将两个的前n个看作是一个新的,同后面的一块计算,

求出前n小的作为新的一组,一直迭代最后求出的自然就是整个的前n小的

 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 const int N=2010;
 4 int n,m;
 5 int a[N],c[N],b[N];
 6 typedef pair<int,int> pii;
 7 
 8 void work(){
 9     for(int j=2;j<=m;j++){
10         priority_queue<pii,vector<pii>,greater<pii>>heap;
11         for(int i=1;i<=n;i++){
12             cin>>b[i];
13         }
14 
15         for(int i=1;i<=n;i++){
16             heap.push({a[1]+b[i],1});
17         }
18 
19         for(int i=1;i<=n;i++){
20             auto t = heap.top();
21             c[i]=t.first;
22             int p=t.second;
23             heap.pop();
24             heap.push({t.first-a[p]+a[p+1],p+1});
25         }
26         for(int i=1;i<=n;i++){
27             a[i]=c[i];
28         }
29     }
30 }
31 int main(){
32     int t;
33     cin>>t;
34     while(t--){
35         cin>>m>>n;
36         for(int i=1;i<=n;i++){
37             cin>>a[i];
38         }
39         sort(a+1,a+n+1);
40         work();
41         for(int i=1;i<=n;i++){
42             cout<<a[i]<< ;
43         }
44         cout<<endl;
45     }
46 }

 

以上是关于Sequence的主要内容,如果未能解决你的问题,请参考以下文章

POJ1699 Best Sequence(AC自动机+状压DP)

使用visio 2016 绘制画UML时序图(Sequence Diagram)

细菌多位点序列分型(Multilocus sequence typing,MLST)的原理及分型方法

MySql实现sequence功能的代码

BioCode根据seq与位点信息截取窗口

如何sql 在表中创建一个sequence