p1904 p1903
昨天同桌为我推荐了p1904这道水题,然后他就写不出来了……本来不想写,但是看他写得很麻烦,为了给他展示我的代码能力就写了一下。
即使类型为“其他”,但还是掩盖不了模拟的事实。那么直接sort Ai,再在前k个牛中找到Bi最高的就行。复杂度为N*logN+k
#include<iostream> #include<iomanip> #include<cstdio> #include<algorithm> using namespace std; struct woc {int a;int b;int num; }cow[50010]; bool mycmp(woc x,woc y) {return x.a>y.a; } int n,k,i,ans=1; int main() { ios::sync_with_stdio(false);cin>>n>>k;for(i=1;i<=n;i++){ cin>>cow[i].a>>cow[i].b;cow[i].num=i;}sort(cow+1,cow+1+n,mycmp);for(i=2;i<=k;i++){if(cow[i].b>cow[ans].b)ans=i;}cout<<cow[ans].num;return 0; }
往上看了一眼,p1903好像也挺简单。
如果双重循环应该是要超时的,n=20000,说小不小了。他们说要sort后二分,哇二分,代码有点复杂的,决心想一种简单点的方法。好像s也不大,我决定搞一个计数排序。
#include<iostream> #include<iomanip> #include<cstdio> #include<algorithm> using namespace std; int i; int num[1000010],t,n,s,ans,sum[1000010]; int C[10010]; int main() { ios::sync_with_stdio(false);cin>>n>>s;for(i=1;i<=n;i++){cin>>t;num[t]++;}for(i=1;i<=10000;i++)C[i+1]=C[i]+i;for(i=1;i<=s;i++)sum[i]=sum[i-1]+num[i];for(i=1;i<=s/2;i++)ans+=C[num[i]]+num[i]*(sum[s-i]-sum[i]);cout<<ans; return 0; }
整个看下来复杂度是10000+s*3/2,完全没问题。(其实实际我处理C数组的时候只循环到了20,然而也能过,说明数据中没有超过20个的)
思路就是找到n头牛的长度对应的长度后num++,建立起一个前缀和(可能叫这玩意?)sum,以后方便算出i到s-i牛的数量,然后答案就是从num[i]中挑两个的方案数(C[num[i]]即为所求)加上num[i]*(sum[s-i]-sum[i]),输出。
转载于:https://www.cnblogs.com/qywyt/p/9002299.html
p1904 p1903相关推荐
- 【洛谷】P1904 天际线
题目地址: https://www.luogu.com.cn/problem/P1904 题目描述: Latium省的Genoa是亚平宁半岛西海岸北端的一片土地,自然资源丰富,却无人居住.你受到罗马执 ...
- 带修莫队 ---- P1903 [国家集训队]数颜色 / 维护队列 带修莫队模板
题目链接 题目大意: 解题思路: 带修改的莫队 首先我们要知道,普通的莫队算法是不资瓷修改操作的, 不过后人对莫队算法加以改进 发明了资瓷修改的莫队算法 思路 在进行修改操作的时候,修改操作是会对答案 ...
- P1903 [国家集训队]数颜色 / 维护队列
关于时间复杂度 对于多维莫队的复杂度差不多为\(O(n^{\frac{2k-1}{k}})\) 摘自zhihu大佬 奇偶分类优化 return a.l == b.l ? (a.l & 1) ? ...
- 洛谷 P1903 [国家集训队]数颜色 / 维护队列
题目描述 墨墨购买了一套N支彩色画笔(其中有些颜色可能相同),摆成一排,你需要回答墨墨的提问.墨墨会向你发布如下指令: 1. Q L R代表询问你从第L支画笔到第R支画笔中共有几种不同颜色的画笔. 2 ...
- 洛谷-P1903 数颜色 分块 bitset
题目 题目链接 题意 给你一个数列代表不同的颜色(可以修改). 询问一段区间内有多少种颜色. 题解 很容易想到的就是线段树来维护bitset. 这里为了练习,使用分块维护bitset. * 事实上线段 ...
- 数颜色(洛谷-P1903)
题目描述 墨墨购买了一套N支彩色画笔(其中有些颜色可能相同),摆成一排,你需要回答墨墨的提问.墨墨会向你发布如下指令: 1. Q L R代表询问你从第L支画笔到第R支画笔中共有几种不同颜色的画笔. 2 ...
- 【洛谷P1903】数颜色
题目大意:给定一个长度为 N 的序列,每个点有一个颜色.现给出 M 个操作,支持单点修改颜色和询问区间颜色数两个操作. 题解:学会了序列带修改的莫队. 莫队本身是不支持修改的.带修该莫队的本质也是对询 ...
- P1903 数颜色 (带修莫队)
题目传送门 ~~~ 题目大意 给一个有 n 个元素的数组 a,有 m 次操作,操作如下: Q 操作,询问区间 (l, r) 不同元素的个数 R 操作,把第 x 个元素修改为 y 对于每次 Q 操作,输 ...
- 信息学奥赛一本通在线提交地址
信息学奥赛一本通 1 C++语言入门 1.1 综合 1.1.1 P1458 地球人口承载力估计 正确: 770 提交: 1794 比率: 42.92 % 1.1.2 P1686 Hello, Worl ...
最新文章
- 漫画:程序教你玩转股票
- AWARD BIOS设置详解
- (Oracle学习笔记) Oracle体系结构
- STC12C5A60S2笔记8(串口)
- 如何在input输入框中加一个搜索的小图片_前端开发困难重重,如何把握机会学习?...
- java word在线预览_java 生成word文档并且在线预览的问题
- 可视化动画:数据结构和算法
- 订单查询管理系统Silverlight4(预告)
- C语言编写贪吃蛇游戏
- 走进小作坊(九)----省时省力的二八法则
- android音乐16bit,16bit音乐是无损吗
- Oracle中除数为0的解决办法
- JMeter递增加压
- python两列时间间隔计算器_计算两列之间的Pandas DataFrame时间差异(以小时和分钟为单位)...
- 【嵌入式Linux(基础篇)】嵌入式Linux底层系统开发流程和应用开发流程
- 让你的桌面腾飞吧(OpenSolaris2008.05 + VirtualBox + WinXP)
- Visual and Object Geo-localization: A Comprehensive Survey
- 三款EPUB阅读软件对比
- 华硕主板驱动在哪里下载?(ROG STRIX B250I)
- python网络安全论文题目_全新计算机专业毕业设计选题(毕业论文题目)