2016#34;百(sha)度(bi)之星#34;-资格赛(Astar Round 1)题解
发布时间:2021-03-14 18:14:44 所属栏目:大数据 来源:网络整理
导读:昨天中午一年一坑人的百(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;
}
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;
}
(编辑:清远站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |

