Poj2182 Lost Cows(玄学算法)】的更多相关文章

POJ2182 Lost Cows 题解 描述 有\(N\)(\(2 <= N <= 8,000\))头母牛,每头母牛有自己的独一无二编号(\(1..N\)). 现在\(N\)头母牛站成一列,已知每头母牛前面编号比它小的母牛数量,求每头母牛的编号. 输入格式 第1行 : 一个整数 \(N\) 第2..N行 : 从 第2头母牛到第N头母牛 的 前面编号比它小的母牛数量 样例输入 5 1 2 1 0 样例输出 2 4 5 3 1 题解 先手造一组数据 2 1 5 4 3 // 编号序列 设比第\(…
题面 Poj 题解 不难发现最后一位就是\(pre[n]+1\),然后消除这个位置对其他位置的贡献,从左到右扫一遍,必定有至少一个位置可以得出,循环这个过程,\(O(n^2)\)出解. #include <cmath> #include <cstdio> #include <cstring> #include <algorithm> using std::min; using std::max; using std::swap; using std::sor…
线段树 Description N (2 <= N <= 8,000) cows have unique brands in the range 1..N. In a spectacular display of poor judgment, they visited the neighborhood 'watering hole' and drank a few too many beers before dinner. When it was time to line up for the…
洛谷题目传送门 萝卜大毒瘤 题意可以简化成这样:给一个DAG,求每个点能够从多少个入度为\(0\)的点到达(记为\(k\)). 一个随机做法:给每个入度为\(0\)的点随机一个权值,在DAG上求出每个点能够返回到的入度为\(0\)的点的最小权值,那么这个权值的期望是\(\frac{\text{随机值域}}{k+1}\).多选几套随机权值(蒟蒻选了一百次),跑出来的平均值即可输出. 实在是太玄学了. #include<bits/stdc++.h> #define LL unsigned long…
题意 Language:Default Lost Cows Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 13448 Accepted: 8559 Description N (2 <= N <= 8,000) cows have unique brands in the range 1..N. In a spectacular display of poor judgment, they visited the neig…
Transformation 题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=4578 Problem Description Yuanfang is puzzled with the question below: There are n integers, a1, a2, -, an. The initial values of them are 0. There are four kinds of operations. Operation 1…
题目链接:http://poj.org/problem?id=2182 题意:给定1~n个数和n个位置,已知ai表示第i个位置前有ai个数比当前位置的数小,求这个排列. 和刚才YY的题意蛮接近的,用树状数组维护当前数组内数字分别是第几大的,倒着查询,每次查尽可能靠右的位置,可以保证取的数字是未取到并且不会冲突. #include <cstdio> #include <cstring> #include <iostream> #include <cstdlib>…
从后往前查第一个为0的奶牛肯定应该排在第一个.每次从后往前找到第一个为0的数,这个数应该插在第j位.查找之后,修改节点的值为极大值,当整棵树的最小值不为0的时候查找结束. 至于这种查找修改的操作,再没有比线段树效率更高的了. #include<stdio.h> #include<string.h> #include<stdlib.h> #define N 8005 #define M 16100 struct node { int x,y; int min; int f…
题意:有编号1~n乱序排列的奶牛,给出了每一个奶牛前小于自己编号的奶牛数目 维护一个树状数组,下标是编号,值为$0/1$标识是否存在,很显然最后一个牛的编号是知道的,我们在树状数组上二分出前缀和为小于这个牛编号的奶牛数目的位置,这个位置代表的编号就是这头奶牛的编号. #include<cstdio> #include<iostream> #include<algorithm> #include<cstring> #include<cmath> #…
blog题解鸽了许久了..本来说好的切一题写一个题解的说 一个$1 \sim n$数列,已知每个数前面比他小的数个数,试确定该序列. 相当的一道水题.可以发现数列最后一个数是首先可以确定下来的.然后把这个数扔掉,看数列倒数第二个数前面有多少更小的其实就是目前剩下的数中的排名.相当于有一颗$n$个点的$1 \sim n$的平衡树,每次查一个排名,找出这个数,并删掉.但是并不想打平衡树.因为这题的操作只涉及简单的删除和查rank操作,可以考虑用BIT代替平衡树.具体是因为BIT本身就是具有树形二分结…
按照惯例,接下来是本篇目录: $1 什么是最小生成树? $2 什么是克鲁斯卡尔算法? $3 克鲁斯卡尔算法的例题 摘要:本片讲的是最小生成树中的玄学算法--克鲁斯卡尔算法,然后就没有然后了. $1 什么是最小生成树? •定义: 先引入一个定理:N个点用N-1条边连接成一个联通块,形成的图形只可能是树,没有别的可能: 根据这个定理,我们定义:在一个有N个点的图中,选出N-1条边出来,连接所有N个点,这N-1条边的边权之和最小的方案: •最小生成树之prim算法:   由于本蒟蒻还不会这个算法,所以…
省队成员(大部分)都没来...像我这种沙茶天天写写玄学算法都能排在榜上面...果然正解写挂的人远比暴力拍对的人少啊...陆陆续续会补一些题解.(不过有些题太神了可能补不上题解 有n个物品,两个袋子A和B.若物品i与j放在同一个袋子里,那么代价为T[i][j],保证T[i][i]=0,T[i][j]=T[j][i]. 一个袋子的代价D=袋子中两两物品代价的最大值.你需要将物品分配到两个袋子中,最小化D(A)+D(B). 2<=n<=250,0<=T[i][j]<=10^9. 陈旭大爷…
Time Limit: 3000MS   Memory Limit: 65536KB   64bit IO Format: %I64d & %I64u Description You have a sequence \{a_1,a_2,...,a_n\} and you can delete a contiguous subsequence of length m. So what is the minimum number of inversions after the deletion.  …
更新记录一些很好的干货博客以及工具网站. 各文章,工具网站版权归原作者所有,侵删. Articles 浅谈C++ IO优化--读优输优方法集锦 浅谈斜率优化 思维导图好助手--开心食用Xmind Typora ---一款简洁的Markdown编辑器 NOIP选手必知的编程技巧 轻量级编辑器透彻指南--Notepad++ 浅谈玄学算法--模拟退火 我有独特的骗分技巧 时空复杂度分析及master定理 浅谈二分的边界问题 基环树瞎吹 SPFA算法的玄学方法 Hexo博客搭建说明书 从零搭建 Hexo…
这场题极其简单 Solved 19 / 19 A Gym 102035A N integers 略 Solved 10 / 33 B Gym 102035B Mahmoud the Thief 用map记录所有数%m的出现次数,然后按顺序模拟,如果不同模数的种类数只剩下一种,那么就结束 Solved 2 / 14 C Gym 102035C Apple Shops 二分最大的价格 Solved 18 / 31 D Gym 102035D Coach Ayoub 略 Solved 15 / 62…
题目描述 暴力枚举/SPFA/Bellman-ford/奇怪的贪心/超神搜索 寻找一个从顶点1所能到达的负环,负环定义为:一个边权之和为负的环. 输入输出格式 输入格式: 第一行一个正整数T表示数据组数,对于每组数据: 第一行两个正整数N M,表示图有N个顶点,M条边 接下来M行,每行三个整数a b w,表示a->b有一条权值为w的边(若w<0则为单向,否则双向) 输出格式: 共T行.对于每组数据,存在负环则输出一行"YE5"(不含引号),否则输出一行"N0&qu…
第一种是离线的Tarjan算法 #include<cstdio> using namespace std; int rd(){ ,fl=;char ch=getchar(); ;}ch=getchar();} )+(x<<)+(ch^);ch=getchar();} return fl*x; } int n,m,s,x,y,num1,num2; ],dis[],a[][],hd1[],hd2[]; ]; ],e2[]; void add1(int from,int to){ e[+…
学Pollard_Rho之前,你需要学会:Miller Rabin. 这是一个很高效的玄学算法,用来对大整数进行因数分解. 我们来分解n.若n是一个素数,那么就不需要分解了.所以我们还得能够判断一个数是否为素数才行.而n是个大整数,显然普通的试除法和筛法都是不够它跑的.所以我们就得考虑用Miller Rabin来判断. 但n不是素数呢?这就得用Pollard_Rho了.首先我们来看一个有趣的东西:生日悖论. 生日悖论:说简单点,就是在N个数里面选k个,当k接近√N时,选出两个相同数的几率约为50…
去年的比赛了,然而今天才改好. 总体难度适中,有大佬AK. 主要是自己SB第二题没想出来,然后又是可怜的100来分. T1 一道二分+数学的题目. 我们可以二分叫的次数,然后用公式(等差数列,公差都是zi)算一个最大的可行的数目. 最后把多余的加上去即可. 注意当xi,yi都等于0的情况. CODE #include<cstdio> #include<cmath> using namespace std; typedef long long LL; LL ans,n,t,t_2,t…
这名字诡异(然而就是这样) 这次主要是yekehe和yu‘ao都来了,所以很开心的讨论(上了200). 但是,yu’ao dalao又AK了!(666666) 不过总体难度也不高,主要是T3没思路. T1 二分或桶 ·如果你不会这道题,出门右转找傅哥去. 去年蒟蒻时期的噩梦啊.然而只是一道PJ的水题. 二分洪水的高度(题目错了,数据是向上取整),然后判断是否可行. 注意开long long(不开80) CODE #include<cstdio> using namespace std; typ…
搜索: 一种基础的算法. 考察常见于NOIP 但是高级的搜索算法可能还会在省选出现. 50%以上的暴力都可以用搜索直接枚举来写. 但是,当数据规模不是很大的时候,搜索也可能成为正解. (比如剪枝PK状压dp) 在搜索的基础上,可以衍生出最短路,而dp本质上,也是搜索的剪枝. 一.基础搜索算法 DFS: 最基本的搜索.用递归实现. 顾名思义,深度优先搜索的特点就是从一个位置直接搜下去,直到搜到末尾或者中途return 先扩展出深度. dfs图中遍历的状态会形成一棵搜索树.(如果搜成了一般图,那就说…
原文链接:线段树(Segment Tree) 1.概述 线段树,也叫区间树,是一个完全二叉树,它在各个节点保存一条线段(即“子数组”),因而常用于解决数列维护问题,基本能保证每个操作的复杂度为O(lgN). 线段树是一种二叉搜索树,与区间树相似,它将一个区间划分成一些单元区间,每个单元区间对应线段树中的一个叶结点. 对于线段树中的每一个非叶子节点[a,b],它的左儿子表示的区间为[a,(a+b)/2],右儿子表示的区间为[(a+b)/2+1,b].因此线段树是平衡二叉树,最后的子节点数目为N,即…
带花树裸题,感觉带花树强强……不会的勿看此文,解释的可能不对,只是给自己看的!!!如题,带花树即为求一般图最大匹配算法(匈牙利与dinic为二分图最大匹配).推荐论文:2015年<浅谈图的匹配算法及其应用>(长郡中学    ——陈胤伯).论文当中有对于带花树算法的详细解析,在这里只想记录一下算法的基本流程: —————————————————————————— \(id\) : 记录一个点为奇点/偶点(0偶1奇). \(fa\) : 并查集记录一个点属于哪一个点为根的花. ——————————…
蒟蒻开始学模拟退火…… 起初一直不肯学,因为毕竟玄学算法…… 哎呀玄学怎么就没用呢?对不对? #include<iostream> #include<cstdio> #include<algorithm> #include<cstring> #include<cstdlib> #include<cmath> #include<ctime> using namespace std; int n; double xx,yy,a…
考完了,终于有时间来写游记了. 有一种悲伤,叫做知道正解是什么但是就是不会写... 有一种遗憾,叫做能拿到的分考完才意识到... 有一种$NOIP$,叫做$Day1$原题大赛,$Day2AHOI$... 不扯了,开始游记: $Day\quad -1$: $JL$请的假还是蛮有用的,至少逃过了期中考试... 今天据说是水题信心赛...但是感觉JL又是在骗我们... 然后...我竟然$290$??? 嗯?$std$只有$280$??? $ZSZ,LYC$日常$AK$... 下午就随便搞两道$DP$做…
点此看题面 大致题意: 给你一棵树,让你求出每一个节点向上的长度在\([l,r]\)范围内的路径权值和最大的\(m\)条路径的权值总和. 关于此题的数列版本 此题的数列版本,就是比较著名的[BZOJ2006][NOI2010] 超级钢琴一题了. 其实那道题目的思想,完全也可以套到这道题目上. 当然,如果你比较强大,写主席树等玄学算法+数据结构也是可以过的. 大致思路 首先,我们\(dfs\)一遍,求出\(sum_i\)表示编号为\(i\)的节点到根节点的权值和. 考虑预处理出\(RMQ_{i,j…
题目描述 暴力枚举/SPFA/Bellman-ford/奇怪的贪心/超神搜索 输入输出格式 输入格式: 第一行一个正整数T表示数据组数,对于每组数据: 第一行两个正整数N M,表示图有N个顶点,M条边 接下来M行,每行三个整数a b w,表示a->b有一条权值为w的边(若w<0则为单向,否则双向) 输出格式: 共T行.对于每组数据,存在负环则输出一行"YE5"(不含引号),否则输出一行"N0"(不含引号). 输入输出样例 输入样例#1: 复制 2 3 4…
[dalao学习笔记总览] [数学] 数论分块:数论分块 矩阵树定理Matrix_Tree:矩阵树Matrix-Tree定理与行列式 杨氏矩阵:杨氏矩阵和钩子公式 Hall定理:Hall定理学习小记 容斥原理和子集枚举:专题:有关容斥原理和子集枚举的一些问题 数学期望:数学1——概率与数学期望 Miller_Robin && Pollard-Rho:大数质因解:浅谈Miller-Rabin和Pollard-Rho算法 盒子和球:当小球遇上盒子 FFT:FFT [DP] 树形dp:树形Dp入…
P3385 [模板]负环 题目描述 暴力枚举/SPFA/Bellman-ford/奇怪的贪心/超神搜索 寻找一个从顶点1所能到达的负环,负环定义为:一个边权之和为负的环. 输入格式 第一行一个正整数T表示数据组数,对于每组数据: 第一行两个正整数N M,表示图有N个顶点,M条边 接下来M行,每行三个整数a b w,表示a->b有一条权值为w的边(若w<0则为单向,否则双向) 输出格式 共T行.对于每组数据,存在负环则输出一行"YE5"(不含引号),否则输出一行"N…
T1 魔法照片 题目 [题目描述] 如果你看过<哈利·波特>,你就会知道魔法世界里的照片是很神奇的.也许是因为小魔法师佳佳长的太帅,很多人都找他要那种神奇的魔法照片, 而且还都要佳佳和他的MM的合照.那些照片可是非常珍贵的,他到底应该把照片给谁呢? 一共有n个人(以1—n编号)向佳佳要照片,而佳佳只能把照片给其中的k个人.佳佳按照与他们的关系好坏的程度给每个人赋予了一个初始权值W[i]. 然后将初始权值从大到小进行排序,每人就有了一个序号D[i](取值同样是1—n).按照这个序号对10取模的值…