首页 > 代码库 > hihocoder-1223-不等式
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-不等式
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。