首先容易知道,最后一个数是最容易确定的,于是从后往前确定 对于位置j,它的数就是1~n中剩余数的第a[j]+1小的数 这当然可以用平衡数做,复杂度为O(nlogn) 有没有更简洁得算法?树状数组+二分 1 var v:array[0..8010] of boolean; 2     c,ans,a:array[0..8010] of longint; 3     i,j,n:longin
转载 2014-03-02 11:11:00
47阅读
2评论
/* 题意: 有n个数,从1到n,打乱顺序, 现输入n-1个数,第i个数表示序列中第1到i-1的数比第i个数小的个数.要求输出
转载 2011-07-18 00:05:00
55阅读
2评论
Lost CowsTime Limit:1000MSMemory Limit:65536KTotal Submissions:8260Accepted:5269Description N (2 list=new LinkedList();
转载 2013-08-02 23:03:00
127阅读
2评论
Lost CowsTime Limit : 2000/1000ms (Java/Other)Memory Limit : 131072/65536K (Java/Other)Total Submission(s) : 4Accepted Submission(s) : 1Problem DescriptionN (2 #include#includeusing namespace std;const int N=8010;#define L(rt) (rt>1; build(L,mid,L(rt)); build(mid+1,R,R(rt));}int query(int id,i...
转载 2013-03-26 23:05:00
85阅读
2评论
扫描 树状数组练习题
转载 2016-07-06 20:34:00
55阅读
2评论
题意:有n头牛,标号从1到n,现在牛排成espace s
原创 11月前
31阅读
【题目链接】 http://poj.org/problem?id=2182 【算法】 树状数组 + 二分 【代码】
转载 2018-07-13 17:37:00
90阅读
2评论
POJ_2182     没想到线段树也可以这么用,确实线段树太灵活了……     这个题目可以转化成从后向前依次查询,比如当前奶牛的前面有x个号码比它小的奶牛,那么它就应该在剩余的数的序列中排第x+1。因此,我们可以维护一个线段树,节点值表示当前区间内还有多少个数,当寻找第x+1大的数时,可以自顶向下查找,找到之后删去这个数,即自底向上更新一遍节点的值即可。 #include<stdio
转载 2011-10-27 15:38:00
67阅读
2评论
树状数组
原创 2023-02-16 06:50:36
71阅读
lar display of poor judgment, they visited the neighborhood 'watering hole' and drank a few too many beers befo
原创 2022-09-15 12:51:01
57阅读
题意:每个奶牛都有一个编号,1- N 从第二个牛开始给出前面比她编号小的牛的个数,问你求牛的编号序列 解题思路:线段树+ 二分查找 (多个相同的数二分边界问题需要注意)  解题代码: 1 #include <stdlib.h> 2 #include <string.h> 3 #include <stdio.h> 4 #define MAXN
转载 2013-07-30 10:39:00
86阅读
2评论
题目链接DescriptionN (2 <= N <= 8,000) cows have unique brands in the range 1..N. In a spectacular display of poor judgment, the
原创 2022-07-19 10:04:29
190阅读
线段树找第K大数,每个结点记录下面还没有找过的数的数目len,当查找第K大数的时候,看它左子树的len值是否大于K,如果大于说明左子树能够容纳K个数,否则在它的右子树上找K-左子树的len大数。#include<stdio.h>struct node{        int l,r;  
原创 2010-11-05 09:41:42
919阅读
N (2 <= N <= 8,000) cows have unique brands in the rang
原创 2023-04-24 23:33:59
38阅读
Total Submissions: 13107   Accepted: 8398 Descript...
原创 2023-03-11 11:40:51
66阅读
题目传送门题意:n头牛,1~n的id给它们乱序编号,已知每头牛前面有多少头牛的编号是比它小的,求原来乱序的编号分析:从后往前考虑,最后一头牛a[i] = 0,那么它的编号为第a[i] + 1编号:为1,倒数第二头牛的编号为除去最后一头牛的编号后的第a[i-1] + 1编号:为3,其他的类推,所以可以...
转载 2015-09-09 18:47:00
106阅读
2评论
Code:#include#include#include#includeusing namespace std;const int maxn = 100000 + 233;int n, C[maxn], height[maxn];stackS;inline...
原创 2021-07-05 13:42:28
102阅读
DescriptionN (2 F[ i ] (说明编号偏大咯)如果(X-1)-SUM( X - 1) #include #include #include #include #include using namespace std;int n,tree[...
转载 2018-08-22 14:43:00
77阅读
2评论
原题饭,但是它们不是按编号有序站着排队的,已经每头牛前面有多少头编号是小于它的,求所有牛的编号。这题用二分有个坑,其实是数据的偶然性造成的。- - - - k k+1 k-1,倒数3其实是k,但是如果放k+1,在我写的第一个注释掉的二分却是对的,看了别人的代码,也就是注释掉的
原创 2022-12-06 19:23:06
67阅读
  • 1
  • 2
  • 3
  • 4
  • 5