【题目链接】 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评论
                            
                                                 
                 
                
                             
         
            
            
            
            /* 题意: 有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评论
                            
                                                 
                 
                
                             
         
            
            
            
            题意:每个奶牛都有一个编号,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阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            <br />这个题比较简单,关键是找到思路,问题便迎刃而解。下面是思路:<br />我们应该根据所给的数据,从            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2023-08-27 11:10:28
                            
                                69阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            线段树找第K大数,每个结点记录下面还没有找过的数的数目len,当查找第K大数的时候,看它左子树的len值是否大于K,如果大于说明左子树能够容纳K个数,否则在它的右子树上找K-左子树的len大数。#include<stdio.h>struct node{        int l,r;              
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2010-11-05 09:41:42
                            
                                960阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            		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评论
                            
                                                 
                 
                
                             
         
            
            
            
            从后向前确定如果最后一个数a[n]=i那么表示有i个数字比 n位置小,所以n位置就是i+1同理 在1-n            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2023-02-22 09:24:18
                            
                                59阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            原题饭,但是它们不是按编号有序站着排队的,已经每头牛前面有多少头编号是小于它的,求所有牛的编号。这题用二分有个坑,其实是数据的偶然性造成的。- - - - k k+1 k-1,倒数3其实是k,但是如果放k+1,在我写的第一个注释掉的二分却是对的,看了别人的代码,也就是注释掉的            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2022-12-06 19:23:06
                            
                                82阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            题目:http://poj.org/problem?id=2182 从后往前确定,自己位置之前没有被确定的且比自己编号小的个数+1即为自己的编号; 利用树状数组快速查找,可另外开一个b数组,角标为编号大小,而其值为是否使用,二分查找到恰好满足条件的位置,向后一直找到没被用过的第一个编号即为此位置编号            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2018-02-10 23:13:00
                            
                                70阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
            主题链接:://poj.org/problem?id=2182Lost CowsTime Limit:1000MSMemory Limit:65536KTotal Submissions:9152Accepted:5879DescriptionN (2 #include#include#in...            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2015-10-05 20:26:00
                            
                                154阅读
                            
                                                                                    
                                2评论