Sequence POJ - 2442】的更多相关文章

Sequence POJ - 2442 口胡一个结论:就是前i行产生的最小的n个和,一定可以在"前i-1行产生的最小n个和,每一个加上这一行的任意一个数,产生的n2个数"中找到.(其实显然是对的) 因此每次只需要求两个有n个数的序列每个序列中选一个产生的所有和中最小n个.方法就是先将两个序列排序,这之后去模拟一个一个取出和的过程.如果第一个序列取的已经确定,那么第二个序列一定是按顺序取.因此枚举第一个序列中取某一个,对于第一个序列中取某一个的情况维护当前已经取到的第二个序列中的序号.用…
题目地址:id=2442">POJ 2442 真心没想到这题的思路. .原来是从第一行逐步向下加,每次都仅仅保存前n小的数.顺便练习了下堆.. 只是感觉堆的这样的使用方法用的不太多啊.. 又是手残. . 把j写成了i,于是就改啊改..改的跟题解上的差点儿一样了= = !. . 代码例如以下: #include <iostream> #include <cstdio> #include <string> #include <cstring> #…
题目链接:http://poj.org/problem?id=2442 Time Limit: 6000MS Memory Limit: 65536K Description Given m sequences, each contains n non-negative integer. Now we may select one number from each sequence to form a sequence with m integers. It's clear that we ma…
Pro. 1 给定k个有序表,取其中前n小的数字.组成一个新表,求该表? 算法: 由于  a1[1] < a1[2] < a1[3] ... <a1[n] a2[1] < a2[2] < a2[3] ... < a2[n] ......... ak[1] < ak[2]<ak[3]...... < ak[n] 首先每个有序表的第一个元素入堆,然后最小元素出堆.该元素入新表L,相应线性表的下一个元素入堆. 例如:如果出堆得是a2[2],那么a2[3]入堆…
题目:http://poj.org/problem?id=2442 题意:给你n*m的矩阵,然后每行取一个元素,组成一个包含n个元素的序列,一共有n^m种序列, 让你求出序列和最小的前n个序列的序列和. 又是一个机智的题 #include <iostream> #include<cstdio> #include<cstring> #include<cstdlib> #include<stack> #include<queue> #in…
题目: http://poj.org/problem?id=2442 #include <stdio.h> #include <string.h> #include <queue> #include <algorithm> using namespace std; priority_queue<int>q; ][]; int main() { int t, n, m; scanf("%d", &t); while(t-…
题目链接:http://poj.org/problem?id=2442 题目大意:给出一个m*n的矩阵,从每一行中取出一个数相加.能得到n^m个不同的结果.要求输出当中前n项. 建立一个以n元数组为底层数组的堆,在这里,利用stl中的make_heap,pop_heap.push_heap等函数解决. 1.将第一组数据输入arr1数组.升序排序. 2.将接下来的数据输入到arr2数组中.而且heap[i]=arr1[0]+arr2[0...n-1].make_heap(heap,heap+n).…
[题目链接] http://poj.org/problem?id=2442 [算法] 堆 [代码] #include <algorithm> #include <bitset> #include <cctype> #include <cerrno> #include <clocale> #include <cmath> #include <complex> #include <cstdio> #include…
2442 -- Sequence 真郁闷,明明方法是对的,为什么我的代码老是那么的慢._(:з」∠)_ 这题要想考虑两列的情况,然后逐列拓展. 代码如下: #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> #include <queue> using namespace std; ; const int Q = N * N; template…
题目描述 给定m个序列,每个序列包含n个非负整数.现在我们可以从每个序列中选择一个数字以形成一个具有m个整数的序列.显然,我们可以得到n ^ m种这种序列.然后,我们可以计算每个序列中的数字总和,并获得n ^ m个值.我们需要的是最小的n个和.你可以帮我们吗? 题目大意:给定M个长度为N的序列,从每个序列中任意取一个数求和,可以构成N的M次方个和,求其中最小的N个和. 输入格式 第一行是整数T,它显示测试用例的数量,然后是T个测试用例.每种情况的第一行都包含两个整数m,n(0 <m <= 10…
Description Given m sequences, each contains n non-negative integer. Now we may select one number from each sequence to form a sequence with m integers. It's clear that we may get n ^ m this kind of sequences. Then we can calculate the sum of numbers…
http://poj.org/problem?id=3709 给定一个长度为n的非严格单调递增数列a1,...,an.每一次操作可以使数列中的任何一项的值减小1.现在要使数列中的每一项都满足其他项中至少有k-1项和它相等.求最少要对这个数列操作的次数. 输入:第一行为测试数据的组数T(1 ≤ T ≤ 20) 每组测试数据包含两行: 第一行为两个正整数n,k.n为数列中元素的个数 (2 ≤ n ≤ 500000): 第二行为非严格单调递增数列的n个整数,正整数的取值范围为[0, 500000].…
It's well known that DNA Sequence is a sequence only contains A, C, T and G, and it's very useful to analyze a segment of DNA Sequence,For example, if a animal's DNA sequence contains segment ATC then it may mean that the animal may have a genetic di…
t组数据 n m 给 n*m的矩阵 从每行拿出一个数 可有n^m个组合 求前n小的输出 维护前n小的数组 #include<stdio.h> #include<string.h> #include<algorithm> #include<vector> using namespace std; #define MAXN 100010 struct node//手写个堆 大顶堆 { int Size; int z[MAXN]; void clear() { S…
题目大意:DNA序列是有 ATGC 组成的,现在知道一些动物的遗传片段有害的,那么如果给出这些有害的片段,能否求出来所有长度为 N 的基因中有多少是不包含这些有害片段的.   分析:也是断断续续做了一天,做这道题前先做一下 hdu2157 这道题,因为这道题的思路就是从它转变过来的,看明白了这个后,就需要构造一个矩阵,不过因为按照自己的想法构造的矩阵,一直WA,不明白为什么,后来发现是因为在子节点不存在时候查询后缀时候包含子节点的时候不彻底造成的,还是对AC自动机了解的不多.不过通过这题也学会了…
题意: 给你n*m的矩阵,然后每行取一个元素,组成一个包含n个元素的序列,一共有n^m种序列, 让你求出序列和最小的前n个序列的序列和. 解题思路: 1.将第一序列读入seq1向量中,并按升序排序. 2.将数据读入seq2向量中,并按升序排序. 将seq2[0] +seq1[i] ( 0<=i<=n-1)读入seqn向量中 用make_heap对seqn建堆. 然后seq2[1] + seq1[i] (0<=i<=n-1),如果seq2[1] +seq1[i]比堆seqn的顶点大,…
题意 1 12 123 1234 12345 ....这样的序列 问第n位数字是几   是数字! 1-9! 思路:递推关系 主要是位数的计算   用a[i]=a[i-1]+(int)log10((double)i)+1;   每加一个n位数  加log10(n)+1位 还有取数字    (i-1)/(int)pow((double)10,len-pos)%10   len-pos 是到最后有多少位   数字/10^(len-pos) 就把后面几位截断了再%10就能取出要的数字了 参考:https…
题意: 给出患病的DNA序列,问序列长度为n的,且不包含患病的DNA序列有多少种 解析: 以给出的患病DNA序列建trie树  患病结点要用flag标记 对于长度为n的序列 位置i有四种 情况A  C  T  G, buid的时候是从祖结点0开始的四种选择,如果tri树中存在某种选择,则顺着走下去,因为要防止恰好选择了患病DNA序列 若trie树中不存在某种选择,则指向0 即祖结点,因为这个点中断了患病DNA序列的生成 偷个图:https://blog.csdn.net/morgan_xww/a…
定义重载运算的时候一定要将矩阵初始化,因为这个调了一上午...... Code: #include<cstdio> #include<algorithm> #include<cstring> #include<queue> #include<string> #define maxn 100000 typedef long long ll; using namespace std; void setIO(string a){ freopen((a+…
题意: 将一个序列分成非空的三部分,将每部分翻转后组合成一个新的序列, 输出这样操作得到的序列中字典序最小的序列 (保证第一个数是数组中最大的元素) 题解: 把数组当作串串. 因为第一个数最大,所以我们可以先将串反过来,然后可以找第一个sa[ i ] > 1 , 因为sa[ i ] 就是字典序从小到大排列的. 然后第二部分的处理就我是看题解的. 第二部分不能直接这样求解 例如: 除去第一部分之后的序列为 4 3 2 2  ,如果直接选取字典序最小的的串是 2 ,那么最后的解是 2  4 3 2…
参考链接:http://rchardx.is-programmer.com/posts/16142.html vj题目链接:https://vjudge.net/contest/273000#status/kongbursi/L/0/ 题目给出了一个数列的前若干项,要求推测后面的项.我们很容易想到拉格朗日插值法,但是精度就变成了一个大问题. 这个问题虽然保证了所有的值都是整数,但是并没有保证其多项式的系数也是整数,因此在计算方面存在很大的困难. 除了插值法,求解这种数列问题我们有更好的差分方法,…
KUANGBIN带你飞 全专题整理 https://www.cnblogs.com/slzk/articles/7402292.html 专题一 简单搜索 POJ 1321 棋盘问题    //2019.3.18 POJ 2251 Dungeon Master POJ 3278 Catch That Cow  //4.8 POJ 3279 Fliptile POJ 1426 Find The Multiple  //4.8 POJ 3126 Prime Path POJ 3087 Shuffle…
[kuangbin带你飞]专题1-23 专题一 简单搜索 POJ 1321 棋盘问题POJ 2251 Dungeon MasterPOJ 3278 Catch That CowPOJ 3279 FliptilePOJ 1426 Find The MultiplePOJ 3126 Prime PathPOJ 3087 Shuffle'm UpPOJ 3414 PotsFZU 2150 Fire GameUVA 11624 Fire!POJ 3984 迷宫问题HDU 1241 Oil Deposit…
专题一 简单搜索 POJ 1321 棋盘问题POJ 2251 Dungeon MasterPOJ 3278 Catch That CowPOJ 3279 FliptilePOJ 1426 Find The MultiplePOJ 3126 Prime PathPOJ 3087 Shuffle'm UpPOJ 3414 PotsFZU 2150 Fire GameUVA 11624 Fire!POJ 3984 迷宫问题HDU 1241 Oil DepositsHDU 1495 非常可乐HDU 26…
背单词,始终是复习英语的重要环节.在荒废了3年大学生涯后,Lele也终于要开始背单词了. 一天,Lele在某本单词书上看到了一个根据词根来背单词的方法.比如"ab",放在单词前一般表示"相反,变坏,离去"等. 于是Lele想,如果背了N个词根,那这些词根到底会不会在单词里出现呢.更确切的描述是:长度不超过L,只由小写字母组成的,至少包含一个词根的单词,一共可能有多少个呢?这里就不考虑单词是否有实际意义. 比如一共有2个词根 aa 和 ab ,则可能存在104个长度不…
再次面对像栈和队列这样的相当基础的数据结构的学习,应该从多个方面,多维度去学习. 首先,这两个数据结构都是比较常用的,在标准库中都有对应的结构能够直接使用,所以第一个阶段应该是先学习直接来使用,下一个阶段再去探究具体的实现,以及对基本结构的改造! C++标准库中的基本使用方法: 栈: #include<stack> 定义栈,以如下形式实现: stack<Type> s; 其中Type为数据类型(如 int,float,char等) 常用操作有: s.push(item);    /…
 名字是法雷数列其实是欧拉phi函数              Farey Sequence Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 11246   Accepted: 4363 Description The Farey Sequence Fn for any integer n with n >= 2 is the set of irreducible rational numbers a/b with 0 <…
A - Farey Sequence Time Limit:1000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64u Submit Status Practice POJ 2478 Description The Farey Sequence Fn for any integer n with n >= 2 is the set of irreducible rational numbers a/b with 0 &l…
DNA Sequence Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 9899   Accepted: 3717 Description It's well known that DNA Sequence is a sequence only contains A, C, T and G, and it's very useful to analyze a segment of DNA Sequence,For exa…
Farey Sequence Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 14291   Accepted: 5647 Description The Farey Sequence Fn for any integer n with n >= 2 is the set of irreducible rational numbers a/b with 0 < a < b <= n and gcd(a,b)…