当前位置: 首页 > news >正文

树状数组 POJ 2481 Cows

 

题目传送门

  1 #include <cstdio>
  2 #include <cstring>
  3 #include <algorithm>
  4 using namespace std;
  5 
  6 const int MAX_N = 100000 + 10;
  7 int cnt[MAX_N];
  8 int ans[MAX_N];
  9 int maxn = -1;
 10 struct node
 11 {
 12     int s, e;
 13     int id;
 14 }cow[MAX_N];
 15 
 16 inline int read(void)
 17 {
 18     int x = 0, f = 1;    char ch = getchar ();
 19     while (ch < '0' || ch > '9')    {if (ch == '-')    f = -1;    ch = getchar ();}
 20     while (ch >= '0' && ch <= '9')    {x = x * 10 + ch - '0';    ch = getchar ();}
 21     return x * f;
 22 }
 23 
 24 inline void print(int x)
 25 {
 26     if (x < 0)    {putchar ('-');    x = -x;}
 27     if (x > 9)    print (x / 10);
 28     putchar (x % 10 + '0');
 29 }
 30 
 31 bool cmp(node x, node y)        //先对e从大到小排序
 32 {
 33     if (x.e == y.e)
 34         return x.s < y.s;        //如果如果相等,再按s从小到大排序
 35     else
 36         return x.e > y.e;
 37 }
 38 
 39 int lowbit(int t)        //求 2^t
 40 {
 41     //return t & (t ^ (t - 1));
 42     return t & (-t);
 43 }
 44 
 45 void plus(int x)
 46 {
 47     while (x <= maxn)
 48     {
 49         ans[x]++;                //记录强壮的牛数
 50         x += lowbit (x);
 51     }
 52 }
 53 
 54 int sum(int x)                    //统计前x项强壮的牛数
 55 {
 56     int sum = 0;
 57     while (x > 0)
 58     {
 59         sum += ans[x];
 60         x -= lowbit(x);
 61     }
 62     return sum;
 63 }
 64 
 65 int main(void)        //POJ 2481 Cows
 66 {
 67     //freopen ("inH.txt", "r", stdin);
 68     int n;
 69 
 70     while (scanf ("%d", &n) && n)
 71     {
 72         for (int i=1; i<=n; ++i)
 73         {
 74             cow[i].s = read ();    cow[i].e = read ();        //读入外挂优化
 75             //scanf ("%d%d", &cow[i].s, &cow[i].e);
 76             cow[i].id = i;
 77             maxn = max (maxn, cow[i].e);
 78         }
 79         memset (ans, 0, sizeof (ans));
 80         sort (cow+1, cow+n+1, cmp);
 81         for (int i=1; i<=n; ++i)
 82         {
 83             if (cow[i].e == cow[i-1].e && cow[i].s == cow[i-1].s)        //如果值相等,不加入统计
 84                 cnt[cow[i].id] = cnt[cow[i-1].id];
 85             else
 86             {
 87                 cnt[cow[i].id] = sum (cow[i].s + 1);                    //第id的牛有多少比它强壮
 88             }
 89             plus (cow[i].s + 1);
 90         }
 91         int j;
 92         for (j=1; j<n; ++j)
 93         {
 94             print (cnt[j]);    putchar (' ');        //输出外挂优化
 95             //printf ("%d ", cnt[j]); 
 96         }
 97         printf ("%d\n", cnt[j]);
 98     }
 99 
100     return 0;
101 }

 

转载于:https://www.cnblogs.com/Running-Time/p/4506625.html

相关文章:

  • 匿名内部类
  • HDU1664 BFS + 数论 + 剪枝
  • HP VA7400存储故障诊断,数据恢复有可能
  • 对创业的反思-自我定位
  • UITableView 基本使用方法总结
  • PHPExcel 长数字串显示为科学计数
  • .Mobi域名介绍
  • QueryDb
  • vmware、操作系统、数据库软件、oracle 补丁地址
  • 乾坤合一~Linux设备驱动之I2C核心、总线以及设备驱动
  • C#学习笔记七索引器
  • sprint计划会议
  • 最简单的浏览器检测JavaScript代码
  • http statusCode(状态码)
  • 一步一步学Silverlight 2系列(5):实现简单的拖放功能
  • 网络传输文件的问题
  • 《Javascript高级程序设计 (第三版)》第五章 引用类型
  • iOS编译提示和导航提示
  • Javascript设计模式学习之Observer(观察者)模式
  • SSH 免密登录
  • vue-cli在webpack的配置文件探究
  • 从零开始在ubuntu上搭建node开发环境
  • 开放才能进步!Angular和Wijmo一起走过的日子
  • 使用SAX解析XML
  • 手写双向链表LinkedList的几个常用功能
  • 腾讯大梁:DevOps最后一棒,有效构建海量运营的持续反馈能力
  • 体验javascript之美-第五课 匿名函数自执行和闭包是一回事儿吗?
  • 为什么要用IPython/Jupyter?
  • 一个SAP顾问在美国的这些年
  • 在Mac OS X上安装 Ruby运行环境
  • 【干货分享】dos命令大全
  • TPG领衔财团投资轻奢珠宝品牌APM Monaco
  • 如何用纯 CSS 创作一个菱形 loader 动画
  • ​ 全球云科技基础设施:亚马逊云科技的海外服务器网络如何演进
  • ​​​​​​​sokit v1.3抓手机应用socket数据包: Socket是传输控制层协议,WebSocket是应用层协议。
  • (html转换)StringEscapeUtils类的转义与反转义方法
  • (JS基础)String 类型
  • (poj1.2.1)1970(筛选法模拟)
  • (ZT)一个美国文科博士的YardLife
  • (篇九)MySQL常用内置函数
  • (十三)Java springcloud B2B2C o2o多用户商城 springcloud架构 - SSO单点登录之OAuth2.0 根据token获取用户信息(4)...
  • .NET Core 将实体类转换为 SQL(ORM 映射)
  • .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞)
  • .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉
  • .Net转前端开发-启航篇,如何定制博客园主题
  • ::
  • @Tag和@Operation标签失效问题。SpringDoc 2.2.0(OpenApi 3)和Spring Boot 3.1.1集成
  • [2013][note]通过石墨烯调谐用于开关、传感的动态可重构Fano超——
  • [ACL2022] Text Smoothing: 一种在文本分类任务上的数据增强方法
  • [APIO2012] 派遣 dispatching
  • [C/C++] C/C++中数字与字符串之间的转换
  • [Contiki系列论文之2]WSN的自适应通信架构
  • [Go WebSocket] 多房间的聊天室(三)自动清理无人房间
  • [GXYCTF2019]禁止套娃
  • [leetcode 数位计算]2520. 统计能整除数字的位数