2016#34;百(sha)度(bi)之星#34;-资格赛(Astar Round 1)题解
发布时间:2021-03-15 06:14:45 所属栏目:大数据 来源:网络整理
导读:副标题#e# 昨天中午一年一坑人的百(sha)度(bi)之星又开赛了,当然正赛的话是下周开始,最先开始的是资格赛。资格赛嘛,过一题就算过了,所以也不管那么多了,就在比赛结束前把题解贴出来了。然后呢,果然不愧是刚刚被政府找去谈话的百度,秉承着坑死你
#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; } (编辑:淮北站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |