本文主要是介绍hihoCoder挑战赛14 题目1 : 不等式,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
-
4 X = 1 X = 2 X = 3 X > 0
样例输出 -
2
描述
给定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[N];
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;
}
这篇关于hihoCoder挑战赛14 题目1 : 不等式的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!