hihocoder-1223-不等式

Posted 0_summer

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hihocoder-1223-不等式相关的知识,希望对你有一定的参考价值。

输入n个不等式,求同时成立的不等式最多有多少个,数据范围n<=50,不等式右边的数据[0,1000]

分析:这题得转换思路来做,已知数据不超过1000,所以枚举0~1000以内的数,依次计算有多少个不等式满足,然后更新答案,也就是二重循环,1000*50

不过这题没有说一定是整数,如x>2,x<3,如果要求x一定是整数,那么这两个不等式不同时成立,但是这题没有说,所以x可以是浮点数,那么这两个不等式可以同时成立。

因此我们做得到时候把数据扩大一倍,也就是变成[0,2000]来做,不过考虑到边界问题,再变成[-2,2002]枚举

 1 #include<iostream>
 2 #include<string>
 3 #include<vector>
 4 using namespace std;
 5 
 6 int n;
 7 string s;
 8 struct node{
 9     int fg;
10     int x;
11     node(int fg=0,int x=0):fg(fg),x(x){}
12 };
13 vector<node> v;
14 
15 int main()
16 {
17     cin>>n;
18     while(n--){
19         char c;
20         cin>>c;
21         cin>>s;
22         int x;
23         cin>>x;
24         int fg;
25         if(s=="=") fg=0;
26         if(s==">") fg=1;
27         if(s=="<") fg=-1;
28         if(s=="<=") fg=-2;
29         if(s==">=") fg=2;
30         node no(fg,2*x);
31         v.push_back(no);
32     }
33     int ans=0;
34     for(int i=-2;i<=2002;i++){
35         int cnt=0;
36         for(int j=0;j<v.size();j++){
37             int fg=v[j].fg;
38             int x=v[j].x;
39             if(fg==0&&i==x) cnt++;
40             else if(fg==-1&&i<x) cnt++;
41             else if(fg==1&&i>x) cnt++;
42             else if(fg==-2&&i<=x) cnt++;
43             else if(fg==2&&i>=x) cnt++;
44         }
45         ans=max(ans,cnt);
46     }
47     cout<<ans<<endl;
48 }

 

以上是关于hihocoder-1223-不等式的主要内容,如果未能解决你的问题,请参考以下文章

G1的栅栏Barrier

华为OD机试 - 不等式(JavaScript) | 机试题+算法思路+考点+代码解析 2023

华为OD机试真题Python实现不等式真题+解题思路+代码(2022&2023)

贪心算法_排队不等式_绝对值不等式_推公式

scau 1138 代码等式

Gekko 中间变量,错误:不等式或不等式的方程