hihoCoder挑战赛14-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,最后枚举X,找出最多可以同时成立的不等式个数,注意X没有说是整数

#pragma comment(linker,"/STACK:102400000,102400000")
#include <iostream>
#include <cstdio>
#include <string>
#include <cstring>
#include <iomanip>
#include <cmath>
#include <algorithm>
#include <stack>
#include <queue>
#include <map>
#include <fstream>
using namespace std;

typedef long long ll;

const int INF = 0x3f3f3f3f;
const int MAX = 0x7fffffff;
const ll LINF = 0x3f3f3f3f3f3f3f3f;
const ll LMAX = 0x7fffffffffffffff;
const double pi=acos(-1.0);

const int maxn = 100000+5;
const int maxm = 100000+5;
const int mod = 1000000007;

#define lson l,m,rt<<1
#define rson m+1,r,rt<<1|1

struct node
{
    int op;
    int c;
} data[50+5];

int strToint(string s,int index)
{

    int re=0;
    for(int i=index; i<s.length(); ++i)
    {
        re=re*10+s[i]-‘0‘;
    }
    return re;
}
int main()
{
    //freopen("input.txt","r",stdin);
    //freopen("output.txt","w",stdout);

    int n;
    //while(cin>>n)
    cin>>n;
    {
        getchar();
        string s;
        int c;
        for(int i=1; i<=n; ++i)
        {
            cin>>s>>s>>c;
            data[i].c=c;
            if(s=="<")
            {
                data[i].op=1;
            }
            else if(s=="<=")
            {
                data[i].op=2;
            }
            else if(s=="=")
            {
                data[i].op=3;
            }
            else if(s==">=")
            {
                data[i].op=4;
            }
            else
            {
                data[i].op=5;
            }
        }
        int ans=0;
        for(double x=-0.5; x<=1000.5; x+=0.5)
        {
            int num=0;
            for(int j=1; j<=n; ++j)
            {
                switch(data[j].op)
                {
                case 1:
                    if(x<data[j].c)
                        num++;
                    break;
                case 2:
                    if(x<=data[j].c)
                        num++;
                    break;
                case 3:
                    if(x==data[j].c)
                        num++;
                    break;
                case 4:
                    if(x>=data[j].c)
                        num++;
                    break;
                case 5:
                    if(x>data[j].c)
                        num++;
                    break;
                }
            }
            ans=max(num,ans);
        }
        cout<<ans<<endl;
    }
    return 0;
}

总结

犯了好多错误,都是一些细节问题.
  开始采用getline()读入,把X当成整数处理,X从零枚举到1000,错了三次,4A

时间: 2024-11-05 08:46:30

hihoCoder挑战赛14-1223 不等式的相关文章

hihoCoder挑战赛14 -1223

描述 给定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一定是整数.所以如果算法是枚举X然后统计成立的不等式数目

hihoCoder挑战赛14 题目1 : 不等式

题目1 : 不等式 时间限制: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 >

hihoCoder挑战赛14 A,B,C题解

转载请注明出处: http://www.cnblogs.com/fraud/          ——by fraud 题目1 : 不等式 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 给定n个关于X的不等式,问最多有多少个成立. 每个不等式为如下的形式之一: X < C X <= C X = C X > C X >= C 输入 第一行一个整数n. 以下n行,每行一个不等式. 数据范围: 1<=N<=50,0<=C<=1000

DFS(深度) hihoCoder挑战赛14 B 赛车

题目传送门 题意:中文题面 分析:放官方题解,就是从1为根节点深搜记录节点的深度,选出最大的深度的点,将该到达该点的节点都vis掉,然后再重新计算没有vis的点的深度,找最大的相加就是答案.放张图好理解: 收获:计算树的节点的深度 代码: /************************************************ * Author :Running_Time * Created Time :2015-8-31 14:03:09 * File Name :B.cpp ***

hihoCoder挑战赛14,题目2 : 赛车

题目2 : 赛车 时间限制:20000ms 单点时限:1000ms 内存限制:256MB 描述 幻想乡有一个赛车场.赛车场里有N个地点.同时地点之间还有单向的道路存在. 这些道路使得赛车场形成了一个外向树的结构.也就是说,道路将这N个地点连成了一个有根树.并且所有的边都是从父亲指向孩子的. 由于幽香喜欢刺激,每次她去赛车场都会从根节点出发,选择最长的一条路径来玩. 但是现在幽香感觉最长的路径还是太短了,她打算在赛车场里新建一条道路使得新的最长路径最长. 同时,如果道路形成了一个环,那么可能会出现

hihoCoder挑战赛14 题目2 : 赛车 树的性质

题目2 : 赛车 时间限制:20000ms 单点时限:1000ms 内存限制:256MB 描述 幻想乡有一个赛车场.赛车场里有N个地点.同时地点之间还有单向的道路存在. 这些道路使得赛车场形成了一个外向树的结构.也就是说,道路将这N个地点连成了一个有根树.并且所有的边都是从父亲指向孩子的. 由于幽香喜欢刺激,每次她去赛车场都会从根节点出发,选择最长的一条路径来玩. 但是现在幽香感觉最长的路径还是太短了,她打算在赛车场里新建一条道路使得新的最长路径最长. 同时,如果道路形成了一个环,那么可能会出现

hihocoder #1223 : 不等式 水题

#1223 : 不等式 Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://hihocoder.com/problemset/problem/1223 Description 给定n个关于X的不等式,问最多有多少个成立. 每个不等式为如下的形式之一: X < C X <= C X = C X > C X >= C Input 第一行一个整数n. 以下n行,每行一个不等式. 数据范围: 1<=N<=50,0<=C&l

hiho #1223 不等式

#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 &g

hihoCoder挑战赛11.题目4 : 高等理论计算机科学(LCA)

clj在某场hihoCoder比赛中的一道题,表示clj的数学题实在6,这道图论貌似还算可以... 题目链接:http://hihocoder.com/problemset/problem/1167 由于是中文题目,题意不再赘述. 对于任意两条小精灵的活动路径a和b,二者相交的判断条件为b的两个端点的LCA在a的路径上:那么我们可以首先将每个活动路径端点的LCA离线预处理出来,对每个节点LCA值+1. 然后以某个节点(我选择的是节点1)为根进行深搜,算出一条从节点1到节点x的LCA值和,那么任意