Lost Coque brands
原创 2022-09-26 14:49:54
101阅读
<br />这个题比较简单,关键是找到思路,问题便迎刃而解。下面是思路:<br />我们应该根据所给的数据,从
原创 2023-08-27 11:10:28
69阅读
【题目链接】 http://poj.org/problem?id=2182 【算法】 树状数组 + 二分 【代码】
转载 2018-07-13 17:37:00
99阅读
2评论
POJ_2182     没想到线段树也可以这么用,确实线段树太灵活了……     这个题目可以转化成从后向前依次查询,比如当前奶牛的前面有x个号码比它小的奶牛,那么它就应该在剩余的数的序列中排第x+1。因此,我们可以维护一个线段树,节点值表示当前区间内还有多少个数,当寻找第x+1大的数时,可以自顶向下查找,找到之后删去这个数,即自底向上更新一遍节点的值即可。 #include<stdio
转载 2011-10-27 15:38:00
92阅读
2评论
Lost Cows(树状数组) 思路:第k小排名问题,树状数组。因为第iii头牛的排名是前i−1i-1i−1头牛比他小的个数加后i+1∼ni+1\sim ni+1∼n比他小的个数再加1 即ansi=cnt1∼i−1+cnti+1∼n+1ans_i=cnt_{1\sim i-1}+cnt_{i+1\sim n}+1ansi​=cnt1∼i−1​+cnti+1∼n​+1. 所以可以用后往前算每次算出ansians_iansi​,然后用该排名更新树状数组中含有该排名的tree[].tree[].tree[]. #
原创 2022-01-22 13:54:22
54阅读
树状数组
原创 2023-02-16 06:50:36
74阅读
Lost Cows(树状数组)思路:第k小排名问题,树状数组。因为第iii头牛的排名是前i−1i-1i−1头牛比他小的个数加后i+1∼ni+1\sim ni+1∼n比他小的个数再加1即ansi=cnt1∼i−1+cnti+1∼n+1ans_i=cnt_{1\sim i-1}+cnt_{i+1\sim n}+1ansi​=cnt1∼i−1​+cnti+1∼n​+1.所以可以用后往前算每次算出ansians_iansi​,然后用该排名更新树状数组中含有该排名的tree[].tree[].tree[].#
原创 2021-08-10 10:11:57
134阅读
/* 题意: 有n个数,从1到n,打乱顺序, 现输入n-1个数,第i个数表示序列中第1到i-1的数比第i个数小的个数.要求输出
转载 2011-07-18 00:05:00
64阅读
2评论
Lost CowsTime Limit:1000MSMemory Limit:65536KTotal Submissions:8260Accepted:5269Description N (2 list=new LinkedList();
转载 2013-08-02 23:03:00
137阅读
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
61阅读
2评论
题意:每个奶牛都有一个编号,1- N 从第二个牛开始给出前面比她编号小的牛的个数,问你求牛的编号序列 解题思路:线段树+ 二分查找 (多个相同的数二分边界问题需要注意)  解题代码: 1 #include <stdlib.h> 2 #include <string.h> 3 #include <stdio.h> 4 #define MAXN
转载 2013-07-30 10:39:00
100阅读
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
205阅读
线段树找第K大数,每个结点记录下面还没有找过的数的数目len,当查找第K大数的时候,看它左子树的len值是否大于K,如果大于说明左子树能够容纳K个数,否则在它的右子树上找K-左子树的len大数。#include<stdio.h>struct node{        int l,r;  
原创 2010-11-05 09:41:42
960阅读
​​传送门​​我们倒过来做,对于当前的x,他前面有dx个比它小,那么它就是当前的第k大这个第k大我们二分一下就好了,这个数完了过后,把它在树状数组里的值改为0就可以了#include<cstdio>#define N 8050using namespace std;int c[N],n,d[N],a[N];void Up(int x,int val){for(;x<=n;x+=x
原创 2022-07-05 10:27:45
67阅读
Total Submissions: 13107   Accepted: 8398 Descript...
原创 2023-03-11 11:40:51
79阅读
N (2 <= N <= 8,000) cows have unique brands in the rang
原创 2023-04-24 23:33:59
47阅读
题目传送门题意:n头牛,1~n的id给它们乱序编号,已知每头牛前面有多少头牛的编号是比它小的,求原来乱序的编号分析:从后往前考虑,最后一头牛a[i] = 0,那么它的编号为第a[i] + 1编号:为1,倒数第二头牛的编号为除去最后一头牛的编号后的第a[i-1] + 1编号:为3,其他的类推,所以可以...
转载 2015-09-09 18:47:00
146阅读
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
144阅读
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
84阅读
2评论
  • 1
  • 2
  • 3
  • 4
  • 5