加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

2016#34;百(sha)度(bi)之星#34;-资格赛(Astar Round 1)题解

发布时间:2021-03-15 11:05:23 所属栏目:大数据 来源:网络整理
导读:昨天中午一年一坑人的百(sha)度(bi)之星又开赛了,当然正赛的话是下周开始,最先开始的是资格赛。资格赛嘛,过一题就算过了,所以也不管那么多了,就在比赛结束前把题解贴出来了。然后呢,果然不愧是刚刚被政府找去谈话的百度,秉承着坑死你们这帮acmer

#include <map>
#include <set>
#include <stack>
#include <cmath>
#include <queue>
#include <bitset>
#include <string>
#include <vector>
#include <cstdio>
#include <cctype>
#include <fstream>
#include <cstdlib>
#include <sstream>
#include <cstring>
#include <iostream>
#include <algorithm>
#pragma comment(linker,b) for(int i=(a);i<=(b);i++)
#define maxn 1000000+10
#define lson l,rt<<1|1
#define IT iterator
#define PB push_back
#define Times 10

typedef long long ll;
typedef unsigned long long ull;
const double eps = 1e-10;
const double pi  = acos(-1);
const ll mod = 1e9+7; 
const int inf = 0x3f3f3f3f;

map<string,int>mapp;
int main()
{
    //freopen("d:acmin.in",&n);
    while(n--)
    {
        string t;
        cin>>t;
        sort(t.begin(),t.end());
        cout<<mapp[t]++<<endl;
    }
    return 0;
}




Problem E

http://bestcoder.hdu.edu.cn/contests/contest_showproblem.php?cid=690&pid=1005

分析:没啥好分析的把,模拟水题。看懂题意,看懂样例,然后就可以水了。

#include <map>
#include <set>
#include <stack>
#include <cmath>
#include <queue>
#include <bitset>
#include <string>
#include <vector>
#include <cstdio>
#include <cctype>
#include <fstream>
#include <cstdlib>
#include <sstream>
#include <cstring>
#include <iostream>
#include <algorithm>
#pragma comment(linker,b) for(int i=(a);i<=(b);i++)
#define maxn 1000+10
#define lson l,rt<<1|1
#define IT iterator
#define PB push_back
#define Times 10

typedef long long ll;
typedef unsigned long long ull;
const double eps = 1e-10;
const double pi  = acos(-1);
const ll mod = 1e9+7; 
const int inf = 0x3f3f3f3f;


struct poi
{
    bool vis;
    int maxx;
    int minn;
}dat[maxn][35];
int num=0;
map<string,int>mapp;
bool flag[maxn];
bool ju(int a,int b,int c,int d)
{
    if(a>d||b<c)return false;
    else return true;
}
int main()
{
    //freopen("d:acmin.in",&n);
    string a;
    cin>>a;
    for(int i=1;i<=n;i++)
    {
        do
        {
            if(a==",")cin>>a;
            if(mapp.find(a)==mapp.end())
                mapp[a]=num++;
            int X=mapp[a];
            int shu;
            cin>>a>>shu;
            if(a=="<"||a=="<=")
            {
                if(a=="<")shu--;
                if(dat[i][X].vis)
                {
                    if(shu>=dat[i][X].minn&&shu<=dat[i][X].maxx)dat[i][X].maxx=shu;
                    else if(shu<dat[i][X].minn)flag[i]=true;
                }
                else 
                {
                    dat[i][X].vis=true;
                    dat[i][X].minn=-20000;
                    dat[i][X].maxx=shu;
                }
            }
            else if(a==">"||a==">=")
            {
                if(a==">")shu++;
                if(dat[i][X].vis)
                {
                    if(shu>=dat[i][X].minn&&shu<=dat[i][X].maxx)dat[i][X].minn=shu;
                    else if(shu>dat[i][X].maxx)flag[i]=true;
                }
                else
                {
                    dat[i][X].vis=true;
                    dat[i][X].minn=shu;
                    dat[i][X].maxx=20000;
                }
            }
            else 
            {
                if(dat[i][X].vis)
                {
                    if(shu>=dat[i][X].minn&&shu<=dat[i][X].maxx)dat[i][X].minn=dat[i][X].maxx=shu;
                    else flag[i]=true;
                }
                else
                {
                    dat[i][X].vis=true;
                    dat[i][X].minn=shu;
                    dat[i][X].maxx=shu;
                }
            }
            cin>>a;
        }while(a==",");
        if(flag[i])
        {
            puts("unique");
            continue;
        }
        int ans=1;
        int ant=0;
        for(int j=1;j<i;j++)
        {
            if(flag[j])continue;
            for(int k=0;k<num;k++)
                if(dat[i][k].vis&&dat[j][k].vis)
                {
                    if(ju(dat[i][k].minn,dat[i][k].maxx,dat[j][k].minn,dat[j][k].maxx))
                    {
                        ans=0;
                        if(ant)cout<<" "<<j;
                        else cout<<j;
                        ant=1;
                        break;
                    }
                }
                else if(dat[i][k].vis||dat[j][k].vis)
                {
                    ans=0;
                    if(ant)cout<<" "<<j;
                    else cout<<j;
                    ant=1;
                    break;
                }
        }
        if(ans)puts("unique");
        else puts("");
    }
    return 0;
}



(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读