BestCoder Round #20 部分题解(A,B,C)(hdu5123,5124,5125)
转载请注明出处: http://www.cnblogs.com/fraud/ ——by fraud
who is the best?
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Each test case begins with an integer N(1≤N≤100),indicating the number of person.
Next N lines contains an integer ai(1≤ai≤N).
2
3
4
5
6
7
8
9
10
3
3
3
3
3
题意:求出现次数最多的数,若有多个数,则输出最小的一个
水题,随便搞
#include<iostream>
#include <cstring>
using namespace std;
int a[];
int main()
{
ios::sync_with_stdio(false);
int t;
cin>>t;
int n;
memset(a,,sizeof(a));
while(t--)
{
int n;
cin>>n;
int k;
int maxx=;
memset(a,,sizeof(a));
int ans=;
for(int i=;i<n;i++)
{
cin>>k;
a[k]++;
if(a[k]>=maxx)
{
if(a[k]==maxx)
{
ans=min(ans,k);
}
else
{
ans=k;
}
maxx=a[k];
}
}
cout<<ans<<endl;
}
return ;
}
代码君
lines
Time Limit: 5000/2500 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
has several lines. The lines are covered on the X axis. Let A is a
point which is covered by the most lines. John wants to know how many
lines cover A.
Each test case begins with an integer N(1≤N≤105),indicating the number of lines.
Next N lines contains two integers Xi and Yi(1≤Xi≤Yi≤109),describing a line.
1
题意:有n条线段,求被覆盖到次数最多的点的次数
分析:
1.可以转化成求前缀和最大的问题:将区间改成左闭右开(即右端点加1),排序,从左往右遍历,若为左端点则加一,右端点则减一。
2.线段树,离散化一下,然后区间更新,单点查询。
#include <iostream>
#include <cstring>
#include <cstdlib>
#include <algorithm>
#include <cstdio>
using namespace std;
typedef pair<int,int> PII;
PII a[];
int main()
{
ios::sync_with_stdio(false);
int t;
//freopen("in.in","r",stdin);
scanf("%d",&t);
while(t--)
{
int n;
scanf("%d",&n);
n=n*;
for(int i=;i<n;i++)
{
scanf("%d",&a[i].first);
a[i].second=;
scanf("%d",&a[++i].first);
a[i].first++;
a[i].second=-;
}
sort(a,a+n);
int ans=;
int k=;
for(int i=;i<n;i++)
{
k=k+a[i].second;
ans=max(k,ans);
}
printf("%d\n",ans);
}
}
代码君
magic balls
Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
People often stand together. The wizard will find the longest
increasing subsequence in the ball A. The wizard has M energy. Each
point of energy can change the two balls’ volume.(swap(ai,bi)).The
wizard wants to know how to make the longest increasing subsequence and
the energy is not negative in last. In order to simplify the problem,
you only need to output how long the longest increasing subsequence is.
Each test case begins with two integer N(1≤N≤1000) and M(0≤M≤1000),indicating the number of people and the number of the wizard’s energy. Next N lines contains two integer ai and bi(1≤ai,bi≤109),indicating the balls’ volume.
题意:有两组数a,b,另外最多可以对其做m次操作——即swap(a[i],b[i]),问在此情况下a数组最大的LIS长度是多少?
分析:先将数据离散化,然后用m+1个树状数组或者线段树来维护在还剩余j次操作之后到第i个数时的最大的LIS长度。
sad,这道题我用了线段树来维护RMQ,一直TLE,最后在参考了邝巨巨的情况下才过了的。
^_^通过这道题目知道了如何运用树状数组来维护RMQ,之前只会用线段树搞搞。
#include <iostream>
#include <cstring>
#include <cstdio>
#include <algorithm>
using namespace std;
struct BIT
{
int bit[];
int n;
int init(int size)
{
n=size;
for(int i=;i<n;i++)bit[i]=;
}
int query(int i)
{
int s=;
while(i>)
{
s=max(s,bit[i]);
i-=i&-i;
}
return s;
}
int update(int i,int x)
{
while(i<=n)
{
bit[i]=max(x,bit[i]);
i+=i&-i;
}
}
}bt[];
int a[],b[],c[];
int main()
{
//ios::sync_with_stdio(false);
int t;
//freopen("in.in","r",stdin);
scanf("%d",&t);
while(t--)
{
int n,m;
scanf("%d%d",&n,&m);
int cnt=;
for(int i=;i<n;i++)
{
scanf("%d%d",&a[i],&b[i]);
c[++cnt]=a[i];
c[++cnt]=b[i];
}
sort(c+,c+cnt+);
cnt=unique(c+,c+cnt+)-c-;
for(int i=;i<n;i++)
{
a[i]=lower_bound(c+,c+cnt+,a[i])-c;
b[i]=lower_bound(c+,c+cnt+,b[i])-c;
}
int ans=;
for(int i=;i<=m;i++)bt[i].init(cnt);
for(int i=;i<n;i++)
{
for(int j=;j<=m;j++)
{
int x=bt[j].query(a[i]-)+;
bt[j].update(a[i],x);
ans=max(ans,x);
if(j<m)
{
x=bt[j+].query(b[i]-)+;
bt[j].update(b[i],x);
ans=max(ans,x);
}
}
}
cout<<ans<<endl; } return ;
}
代码君
D题
目前还不会,不会cdq分治。。。
BestCoder Round #20 部分题解(A,B,C)(hdu5123,5124,5125)的更多相关文章
- BestCoder Round #86 部分题解
Price List 题意: 有n件商品,每天只能买一件,并且会记录账本,问有多少次一定记多了? 题解: 就是求和,最后如果大于和就输出1,否则0. 代码: #include <bits/std ...
- hdu 5066 Harry And Physical Teacher(Bestcoder Round #14)
Harry And Physical Teacher Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Ja ...
- bestcoder Round #7 前三题题解
BestCoder Round #7 Start Time : 2014-08-31 19:00:00 End Time : 2014-08-31 21:00:00Contest Type : ...
- BestCoder Round #11 (Div. 2) 题解
HDOJ5054 Alice and Bob Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/O ...
- BestCoder Round #90 A+B题解!
BestCoder Round #90 A Kblack loves flag 题意有点迷不造思路很简单但不造怎么求随机数,纠结了一会后直接粘上题目所给的代码稍加修改A了. const int _K ...
- BestCoder Round #11 (Div. 2) 前三题题解
题目链接: huangjing hdu5054 Alice and Bob 思路: 就是(x,y)在两个參考系中的表示演全然一样.那么仅仅可能在这个矩形的中点.. 题目: Alice and Bob ...
- [BestCoder Round #3] hdu 4908 BestCoder Sequence (计数)
BestCoder Sequence Problem Description Mr Potato is a coder. Mr Potato is the BestCoder. One night, ...
- BestCoder Round #90 //div all 大混战 一题滚粗 阶梯博弈,树状数组,高斯消元
BestCoder Round #90 本次至少暴露出三个知识点爆炸.... A. zz题 按题意copy Init函数 然后统计就ok B. 博弈 题 不懂 推了半天的SG..... 结果这 ...
- BestCoder Round #69 (div.2) Baby Ming and Weight lifting(hdu 5610)
Baby Ming and Weight lifting Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K ( ...
随机推荐
- cocos2dx 字体描边方法介绍
转载地址:http://www.taikr.com/group/2/thread/1606 关于cocos2dx 字体描边的实现,不考虑效果和效率的话,是有三种方式: ① 利用CCLabelTTF制作 ...
- hadoop之MapReduce WordCount分析
MapReduce的设计思想 主要的思想是分而治之(divide and conquer),分治算法. 将一个大的问题切分成很多小的问题,然后在集群中的各个节点上执行,这既是Map过程.在Map过程结 ...
- OFBiz中根据店铺获取产品可用库存的方法
1.[ProductStoreFacility]获得店铺绑定的仓库列表 2.遍历仓库,调用[getInventoryAvailableByFacility],传入[facilityId : facil ...
- EL表达式复习
EL表达式格式: 格式1:${objName.attribute} 执行的过程为:从pageContext.request.session.application中依次查找绑定名为“user”的对象, ...
- python下如何处理windows的路径名
f = open(r'e:\迅雷下载\TEK-071\test.txt','r') 在windows下\会被认为是转义字符,所以需要在字符串前加上r,来告诉计算机后面的字符串是没有转义的.
- python学习第二天 --变量及其字符串
python变量: 在计算机程序中,变量不仅可以是数字,还可以是任意数据类型. 在Python程序中,变量是用一个变量名表示,变量名必须是大小写英文.数字和下划线(_)的组合,且不能用数字开头. 在P ...
- Unicode的解救方案 - Windows程序设计(SDK)002
Unicode的解救方案 让编程改变世界 Change the world by program 内容节选: 早期的Windows也是使用ASCII字符集,ASCII好处多多,但ASCII的第一个字母 ...
- 继续畅通工程--hdu1879
继续畅通工程 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Subm ...
- gtest编译小结(ubuntu 12.10 , gtest 1.6.0)
1 下载源码,解压之当前用户的主目录(~/) 2 进入make目录,执行make命令 cd ~/gtest-/make make 3 在ubuntu里编译出错,提示找不到lthread库.修改Make ...
- 火狐的打开3D效果
最近研究网页的时候,想看看一个页面中盒子的层次问题,点击右键查看元素的后,没有发现3D效果的按钮. 在网上百度后说要什么显卡支持,以为是公司的电脑用的是集显,就没有这个功能.回去用自己的笔记本后,发现 ...