[ USACO 2018 OPEN ] Out of Sorts (Platinum)】的更多相关文章

\(\\\) \(Description\) 对一长为\(N\)的数列\(A\)排序,不保证数列元素互异: 数列\(A\)中\(A[1...i]\)的最大值不大于\(A[i+1-N]\)的最小值,我们就称元素\(i\)和\(i+1\)之间的位置为一个分隔点. 当数列未排好序时,将每一个由分隔点分出的区间单独进行一次顺序扫描的冒泡排序,循环至数列排好序. 形式化的代码可以描述成: work_counter = 0 bubble_sort_pass (A) { for i = 0 to length…
\(\\\) \(Description\) 运行以下代码对一长为\(N\)的数列\(A\)排序,不保证数列元素互异: cnt = 0 sorted = false while (not sorted): cnt = cnt + 1 sorted = true for i = 0 to N-2: if A[i+1] < A[i]: swap A[i], A[i+1] for i = N-2 downto 0: if A[i+1] < A[i]: swap A[i], A[i+1] for i…
\(\\\) \(Description\) 运行以下代码对一长为\(N\)的数列\(A\)排序,不保证数列元素互异: cnt = 0 sorted = false while (not sorted): cnt = cnt + 1 sorted = true for i = 0 to N-2: if A[i+1] < A[i]: swap A[i], A[i+1] sorted = false 求退出循环后\(cnt\)的值. \(N\in [0,10^5]\),\(A_i\in [0,10^…
目录 Milking Order @USACO 2018 US Open Contest, Gold/upc_exam_6348 PROBLEM 题目描述 输入 输出 样例输入 样例输出 提示 MEANING SOLUTION CODE Milking Order @USACO 2018 US Open Contest, Gold/upc_exam_6348 PROBLEM 题目描述 Farmer John's N cows (1≤N≤105), numbered 1-N as always,…
t1-Out of Sorts 题目大意 将最大的数冒泡排序到最后需要多少次操作. 分析 排序后判断距离. ac代码 #include<bits/stdc++.h> #define N 1000005 using namespace std; struct node{ int x,p; }a[N]; int n; int read(){ int w=0,x=0;char ch=0; while(!isdigit(ch))w|=ch=='-',ch=getchar(); while(isdigi…
Link: USACO 2018 Feb Gold 传送门 A: $dp[i][j][k]$表示前$i$个中有$j$个0且末位为$k$的最优解 状态数$O(n^3)$ #include <bits/stdc++.h> using namespace std; #define X first #define Y second typedef long long ll; typedef pair<int,int> P; ,INF=<<; int n,dat[MAXN],dp…
Link: USACO 2018 Jan Gold 传送门 A: 对于不同的$k$,发现限制就是小于$k$的边不能走 那么此时的答案就是由大于等于$k$的边形成的图中$v$所在的连通块除去$v$的大小 为了优化建图过程,考虑离线,将询问和边都按权值从大到小排序,依次加边即可 维护连通性和连通块大小用并查集 #include <bits/stdc++.h> using namespace std; #define X first #define Y second typedef long lon…
题意 题目链接 分析 假设当前的根为 rt ,我们能够在奶牛到达 \(u\) 之时拦住它,当且仅当到叶子节点到 \(u\) 的最短距离 \(mn_u \le dis_u\) .容易发现,合法的区域是许多棵子树,而我们要求的就是有多少棵子树. 由于除了以 rt 为根的子树都可以用 \(\sum\limits_{x\in subtree} 2-deg(x)\) 的形式表示 (如果 rt 是叶子特判掉即可),于是可以将问题转化成有多少个点满足 \(mn_u\le dis_u​\) . 考虑点分治,先补…
https://www.xoj.red/contests/show/1231 下面会写一些题目的解析什么的,当然不会粘贴题目只是简单提一下 (部分题目简单的题目就不概括了) 其实难度应该前面比较低. 问题A: 3894: Out of Sorts 本题求出冒泡排序需要几趟. 考虑一次冒泡排序的交换,减小对应1个位子上的1个逆序对. 但是对于每一个位子所需要减小的逆序对数量是不一样的. 对于每一趟,消去每一个位子上1个逆序对所以趟数就是每个位子上的数产生逆序对数的最大值. 最后的+1指的是即使上一…
t1 Convention 题目大意 每一头牛都有一个来的时间,一共有\(n\)辆车,求出等待时间最长的那头牛等待的最小时间. 解法 第一眼看到这道题还以为是\(2018noip\)普及组的t3魔鬼题,但是不一样. 我们因为要查找最大最小值,很容易就想到用二分查找. 那么直接查找答案,也就是等待的时间,然后用\(O(n)\)的复杂度的贪心验证就可以了,放的下且能放进去,那么就放. 总体复杂度是\(O(nlogn)\) \(ps.\)要注意边界的判断. t2 Convention II 题目大意…