「POJ 2182」 Lost Cows】的更多相关文章

题目链接 戳这 题目大意 \(N(2 <= N <= 8,000)\)头奶牛有\(1..N\)范围内的独特品牌.对于每头排队的牛,知道排在那头牛之前的并比那头牛的品牌小的奶牛数目.根据这些数据,输出的确切排序. 题解 令输入数组为b[i]; 可以发现最后一个奶牛可以确定为b[n]+1,由最后一个又可以推出倒数第二个,由此递推就好了,每次的答案就是序列中的第b[i]+1小的数,询问完后就将这个数从序列中删除. 至于怎么选那个数,就看你用什么数据结构维护了,我用的平衡树. code #includ…
0前言 感谢yxy童鞋的dp及暴力做法! 1 算法标签 优先队列.dp动态规划+滚动数组优化 2 题目难度 提高/提高+ CF rating:2300 3 题面 「POJ 3666」Making the Grade 路面修整 4 分析题面 4.1 简要描述 给出数列 \(A\), 求非严格单调不上升或单调不下降, 且\(S=\sum^N_{i=1}|A_i-B_i|\) 最小的序列\(B\),输出\(S\) 4.2 模型转换 输入\(N\), 然后输入\(N\)个数,求最小的改动这些数使之成非严…
[题目链接] http://poj.org/problem?id=2182 [算法] 树状数组 + 二分 [代码] #include <algorithm> #include <bitset> #include <cctype> #include <cerrno> #include <clocale> #include <cmath> #include <complex> #include <cstdio> #…
更好的阅读体验 Portal Portal1: POJ Portal2: Luogu Description One cow from each of N farms \((1 \le N \le 1000)\) conveniently numbered \(1 \cdots N\) is going to attend the big cow party to be held at farm #X \((1 \le X \le N)\). A total of \(M (1 \le M \l…
Tag 堆,贪心,链表 Solution 把连续的符号相同的数缩成一个数,去掉两端的非正数,得到一个正负交替的序列,把该序列中所有数的绝对值扔进堆中,用所有正数的和减去一个最小值,这个最小值的求法与「CTSC 2007 数据备份」相同. Code #include <cstdio> #include <queue> const int N = 100005, inf = 0x3f3f3f3f; struct Node { int x, y; bool operator < (…
BUPT 2017 Summer Training (for 16) #3G 题意 摆好的多米诺牌中有n个关键牌,两个关键牌之间有边代表它们之间有一排多米诺牌.从1号关键牌开始推倒,问最后倒下的牌在哪里,以及时刻. 题解 注意最后倒下的可能不是关键牌,而是关键牌之间的牌. dfs找出每个关键牌最早到达的时间,也就是它们倒下的时刻.然后再对每条边,计算边上最后倒下的牌的时间. 其实就是跑一遍最短路. 代码 #include <cstdio> #include <cstring> #i…
BUPT 2017 summer training (16) #2C 题意 n个卡片可以支撑住的长度是1/2+1/3+1/4+..+1/(n+1)个卡片长度.现在给出需要达到总长度,求最小的n. 题解 模拟加起来,直到长度不小于给定的总长度. 我也写了个java代码^_^ 代码 import java.util.*; import java.io.*; public class Main{ public static void main(String []args){ Scanner cin =…
BUPT 2017 summer training (16) #2 A 题意 有一个玩具盒,被n个隔板分开成左到u右n+1个区域,然后给每个玩具的坐标,求每个区域有几个玩具. 题解 依次用叉积判断玩具在每个隔板左边还是右边. 知识 设\(\vec a=(x_1,y_1),\vec b=(x_2,y_2)\). 点乘:内积(数量积),\(\vec{a}\cdot\vec{b}=|a||b|cos\theta=x_1\cdot x_2+y_1\cdot y_2\) 叉乘:外积(向量积),\(|\ve…
题目链接 戳我 \(Describe\) 一场联赛可以表示成一个完全图,点表示参赛选手,任意两点u, v之间有且仅有一条有向边\((u, v)\)或\((v, u)\),表示\(u\)打败\(v\)或\(v\)打败\(u\).一个选手的得分等于被他打败的选手总数.一个选手被称为\("strong\ king"\)当且仅当他打败了所有比他分高的选手.分数最高的选手也是\("strong\ king"\).现在给出某场联赛所有选手的得分序列,由低到高,问合理安排每场比赛…
题面: Tree Give a tree with n vertices,each edge has a length(positive integer less than 1001). Define dist(u,v)=The min distance between node u and v. Give an integer k,for every pair (u,v) of vertices is called valid if and only if dist(u,v) not exce…