hihoCoder挑战赛14 题目1 : 不等式
2015-08-30 21:09
197 查看
时间限制:10000ms
单点时限:1000ms
内存限制:256MB
给定n个关于X的不等式,问最多有多少个成立。
每个不等式为如下的形式之一:
X < C
X <= C
X = C
X > C
X >= C
第一行一个整数n。
以下n行,每行一个不等式。
数据范围:
1<=N<=50,0<=C<=1000
一行一个整数,表示最多可以同时成立的不等式个数。
样例输入
样例输出
题意,给出一些不等式,要求,能满足的不等式的个数。
由于,x不一这定整数,直接枚举所有的1 - 1000 和 加上0.5所有的最大值就可以了,也就是映射成-1 -0.5 0 0.5 1 1.5... 等于号,直接加1,其它成段的加1就可以了。复杂度o(n * n );
#define N 2050
#define M 100005
#define maxn 205
#define MOD 1000000000000000007
int n,m,num
;
char str[20];
int getIndex(int x,bool has){
if(has){
return (x + 1) * 2;
}
else {
return (x + 1) * 2 - 1;
}
}
int main()
{
//freopen("in.txt", "r", stdin);
//freopen("out.txt", "w", stdout);
while(S(n)!=EOF)
{
fill(num,0);
FI(n){
SS(str);
SS(str);
S(m);
if(str[0] == '<'){
if(str[1] == '='){
int x = getIndex(m,true);
For(j,0,x+1){
num[j]++;
}
}
else {
int x = getIndex(m,false);
For(j,0,x+1){
num[j]++;
}
}
}
else if(str[0] == '>'){
if(str[1] == '='){
int x = getIndex(m,true);
for(int j = x;j<N;j++)
num[j]++;
}
else {
int x = getIndex(m,false);
for(int j = x;j<N;j++)
num[j]++;
}
}
else if(str[0] == '='){
int x = getIndex(m,true);
num[x]++;
}
}
int ans = 0;
FI(N) ans = max(ans,num[i]);
printf("%d\n",ans);
}
//fclose(stdin);
//fclose(stdout);
return 0;
}
单点时限:1000ms
内存限制:256MB
描述
给定n个关于X的不等式,问最多有多少个成立。每个不等式为如下的形式之一:
X < C
X <= C
X = C
X > C
X >= C
输入
第一行一个整数n。以下n行,每行一个不等式。
数据范围:
1<=N<=50,0<=C<=1000
输出
一行一个整数,表示最多可以同时成立的不等式个数。样例输入
4 X = 1 X = 2 X = 3 X > 0
样例输出
2
题意,给出一些不等式,要求,能满足的不等式的个数。
由于,x不一这定整数,直接枚举所有的1 - 1000 和 加上0.5所有的最大值就可以了,也就是映射成-1 -0.5 0 0.5 1 1.5... 等于号,直接加1,其它成段的加1就可以了。复杂度o(n * n );
#define N 2050
#define M 100005
#define maxn 205
#define MOD 1000000000000000007
int n,m,num
;
char str[20];
int getIndex(int x,bool has){
if(has){
return (x + 1) * 2;
}
else {
return (x + 1) * 2 - 1;
}
}
int main()
{
//freopen("in.txt", "r", stdin);
//freopen("out.txt", "w", stdout);
while(S(n)!=EOF)
{
fill(num,0);
FI(n){
SS(str);
SS(str);
S(m);
if(str[0] == '<'){
if(str[1] == '='){
int x = getIndex(m,true);
For(j,0,x+1){
num[j]++;
}
}
else {
int x = getIndex(m,false);
For(j,0,x+1){
num[j]++;
}
}
}
else if(str[0] == '>'){
if(str[1] == '='){
int x = getIndex(m,true);
for(int j = x;j<N;j++)
num[j]++;
}
else {
int x = getIndex(m,false);
for(int j = x;j<N;j++)
num[j]++;
}
}
else if(str[0] == '='){
int x = getIndex(m,true);
num[x]++;
}
}
int ans = 0;
FI(N) ans = max(ans,num[i]);
printf("%d\n",ans);
}
//fclose(stdin);
//fclose(stdout);
return 0;
}
相关文章推荐
- [笔记][Java7并发编程实战手册]4.5-4.6 运行多个任务并处理第一个结果/所有结果ThreadPoolExecutor
- com/opensymphony/xwork2/spring/SpringObjectFactory.java:230:-1
- 关于C#下使用轻量级数据库的一些经验
- 8月 (August)总结规划
- [c#美味] Guid ToString 格式知多少?
- 常用的 Linux命令
- XML XML常见的操作 http://blog.csdn.net/pbymw8iwm/article/details/7899156
- 交友不慎
- noip 2006
- 3 JavaWeb之Mac下Myeclipse配置Tomcat创建一个简单问web工程
- UDP服务器/客户端代码示例
- CRect::DeflateRect()
- iOS7 CookBook精彩瞬间(一)property、selector细节、__unused
- 2.2.4、容器的互联
- Opencv鼠标事件下的ROI
- iOS7 CookBook精彩瞬间(一)property、selector细节、__unused
- HDU1301 最小生成树kruskal裸题
- 树莓派安装操作系统-raspbian的方法
- jedis使用样例程序
- epoll实现分析