hihoCoder1223 不等式
Posted ACRykl
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hihoCoder1223 不等式相关的知识,希望对你有一定的参考价值。
#1223 : 不等式
时间限制:10000ms
单点时限: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
分析:C是整数且范围较小(0<=C<=1000),只需从-1到1001,统计每个数符合多少个不等式即可,
为了避免X<3,X>2没有整数i符合的情况,只需把x*2即可,即变为X<6,X>4。#include<cstdio> #include<cstring> #include<algorithm> using namespace std; char ch[10],s[600][10]; int x[600]; int main() { int N; scanf("%d",&N); for(int i=0;i<N;i++) { scanf("%s",ch); scanf("%s",s[i]); scanf("%d",&x[i]); } int ans=0; for(int k=-1;k<2002;k++) { int sum=0; for(int i=0;i<N;i++) { if(s[i][0]==‘<‘) { if(s[i][1]==‘=‘&&k<=x[i]*2)//X<=x sum++; else if(k<x[i]*2) sum++; } else if(s[i][0]==‘>‘) { if(s[i][1]==‘=‘&&k>=2*x[i])//X>=x sum++; else if(k>2*x[i]) sum++; } else if(k==2*x[i]) sum++;//X=x } ans=max(sum,ans); } printf("%d\n",ans); return 0; }
以上是关于hihoCoder1223 不等式的主要内容,如果未能解决你的问题,请参考以下文章