LA 4255 UVa1423 拓扑排序】的更多相关文章

题目给出的是Sij的正负号,Sij=ai+...+aj,所以令前缀和Bi=a0+a1+..+ai,a0=0,B0=0,则有Sij=Bj-B(i-1): 由此构造出Bi的拓扑序列,只要每个拓扑序列相邻的Bi的值只相差1,那样总共只有不会超过10个Bi,最大的Bi和最小的Bi的差值的绝对值小于10, 因为ai=Bi-B(i-1),ai的绝对值就必然不超出10: #include <stdio.h> #include <string.h> #define CL(x) memset(x,0…
设这个序列的前缀和为Si(0 <= i <= n),S0 = 0 每一个符号对应两个前缀和的大小关系,然后根据这个关系拓扑排序一下. 还要注意一下前缀和相等的情况,所以用一个并查集来查询. #include <cstdio> #include <cstring> ; int n; int G[maxn][maxn]; ]; int sum[maxn], a[maxn]; int topo[maxn], c[maxn], t; void dfs(int u) { c[u]…
算好题目,反正我没想到可以用图论做(虽然现在做的是图论专题= =) 首先是要把求每个位置上的值转化为求 “前缀和之差”,这是一个很有用的技巧 其次,由输入的(n+(n-1)+...+2+1)个符号,可以确定出 n个前缀和的大小关系,并从大到小做有向边建图 之后,用拓扑排序依次从大到小找到前缀和,与此同时对num[]做处理,实际上是离散出这n个值. 这n值符合之前的大小关系,所以他们两两相减,就得到了题目要求的值 #include<stdio.h> #include<string.h>…
评分稍微有一点过分..不过这个题目确确实实很厉害,对思维训练也非常有帮助. 按照套路,我们把矩阵中的子段和化为前缀和相减的形式.题目就变成了给定一些前缀和之间的大小关系,让你构造一组可行的数据.这个东西显然是传递闭包,但是如果仅仅传递闭包的话我们只能询问两两之间的关系,处理起来比较麻烦.有没有什么办法获取一个完整的顺序序列出来呢?显然是做一个拓扑排序就好啦~ 但是问题来了.如果没有相等一切好说,现在有相等该咋玩? 注意到题目保证一定有一组可行解,我们可以先不表示相等的关系.(如果把\(<=\)的…
对于一个序列 a1 a2 ... an 我们可以计算出一个符号矩阵A, 其中Si,j 为 a1+...+aj 的正负号,(连加和大于0则Sij=+ 小于0 Sij=-  等于0 则Sij=0), 根据序列A不难算出上述符号矩阵.你的任务是求解它的“逆问题” , 及给出一个符号矩阵,找出一个对应的序列.输入保证存在一个满足条件的序列,其中每个整数的绝对值均不超过10 解  连续和转化为前缀和之差,设Bi=a1+...+ai 规定B0=0 则矩阵中的任意一项都等价于连个Bi 相减之后的正负号,例如…
题目链接:https://cn.vjudge.net/contest/209473#problem/B 题目大意:对于n个数字,给出sum[j]-sum[i](sum表示前缀和)的符号(正负零),求一组n个数的的可行解(n个数都在-10——10之间)[保证一定有解] 解题思路: 第一反应!差分约束! 差分约束是用来求解不等式组的合理解的,用在此题上刚好,把sum[i]-sum[j]>0转化为sum[i]-sum[j]>=-1,小于零同理.把sum[i]-sum[j]==0转化为sum[i]-s…
Guess 题目传送:Guess 白书例题 注意拓扑排序时,,入度同一时候为0的前缀和须要赋值为同一个数(这个数能够随机取.由于前缀和是累加的,每个a的数值都仅仅和前缀和之差有关).,由于此时能够看成他们的前缀和是相等的,不存在大小关系,,而存在大小关系的都连了一条有向边. .假设此时不赋值为同一个数,,可能对于符号0不是正解.,从而产生错误的结果.. AC代码: #include <map> #include <set> #include <list> #includ…
Given a sequence of integers, a1, a2, . . . , an, we define its sign matrix S such that, for 1 ≤ i ≤ j ≤ n, Sij = “ + ” if ai + . . . + aj > 0; Sij = “ − ” if ai + . . . + aj < 0; and Sij = “0” otherwise. For example, if (a1, a2, a3, a4) = (−1, 5, −…
https://www.lydsy.com/JudgeOnline/problem.php?id=2815 作为一个DAG图,结点之间又有这么明显的等级之分,很容易想到的是拓扑排序. 但是不管是正向的拓扑排序还是逆向的拓扑排序感觉都不是特别容易的能解决这个问题. 但事实上只要知道一个十分关键的点:一个物种会灭绝的必要条件是当且仅当另一个物种灭绝. 例如样例给的图片当中,小强的灭绝仅和草是否灭绝有关,和牛羊无关. 因此事实上这个图的关系可以变为一棵树的关系,一个点会灭绝当且仅当他的祖先灭绝. 怎么…
http://acm.uestc.edu.cn/#/problem/show/916 方老师的分身 III Time Limit: 3000/1000MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Others) Submit Status 一天的讲座结束后,方老师的分身们聚在了一起.在合并成一个方老师之前.这些分身要求方老师的真身发糖.这些分身要求方老师至少给他们发888个糖.这还不够,有的分身要求分比另外某个分身的糖多.问方老师最…