标签:lse long namespace IV air bsp code fir nbsp
#include <bits/stdc++.h> #define ll long long using namespace std; pair<char,char>mp[1000]; pair<char,char>mpp[1000]; pair<char,char>anp[1000]; map<pair<int,int>,int>flo; char a[1000],b[1000]; int main() { int i=0; char str; cout<<"请输入A集合"<<endl; while(cin>>str) { if(str==‘.‘) break; if(str==‘,‘) { } else a[i++]=str; } int len1=i; i=0; cout<<"请输入B集合"<<endl; while(cin>>str) { if(str==‘.‘) break; if(str==‘,‘) { } else b[i++]=str; } int len2=i; int ans=0,sum=0; for(i=0; i<len1; i++) { for(int j=0; j<len2; j++) { mp[sum].first=a[i]; mp[sum].second=b[j]; sum++; } } for(i=0; i<len1; i++) { for(int j=0; j<len1; j++) { mpp[ans].first=a[i]; mpp[ans].second=a[j]; ans++; } } int solve,pi; cout<<"输出A x B:输入1"<<endl; cout<<"输出A x A:输入2"<<endl; while(cin>>solve) { if(solve==1) { for(int i=0; i<sum; i++) { cout<<i<<" "<<‘<‘<<mp[i].first<<mp[i].second<<‘>‘<<endl; } } if(solve==2) { for(int i=0; i<ans; i++) { cout<<i<<" "<<‘<‘<<mpp[i].first<<mpp[i].second<<‘>‘<<endl; } } cout<<"继续操作:1 判断关系:2"; cin>>pi; if(pi==2) { break; } } while(1) { cout<<"请选择要判断的子集 停止输出:-1"<<endl; ans=0; int a; flo.clear(); while(cin>>a) { if(a==-1) break; anp[ans++]=mpp[a]; flo[mpp[a]]=1;//映射 } cout<<"判断自反 1,判断传递 2,判断反对称 3,判断反自反 4,判断对称 5,结束 0"; while(cin>>a) { if(a==0) { break; } if(a==1) { map<int,int>st; st.clear(); bool flag=1; for(int i=0; i<ans; i++) { if(anp[i].first==anp[i].second) { st[anp[i].first]=1; } } for(int i=0; i<ans; i++) { if(!st[anp[i].first]){ flag=0; break; } } if(flag==0) cout<<"NO"<<endl; else cout<<"YES"<<endl; } if(a==2) { bool flag=1; for(int i=0; i<ans; i++) { char pl=anp[i].first; char p2=anp[i].second; for(int j=0; j<ans; j++) { if(anp[j].first==p2) { flag=1; if(pl==anp[j].first) { if(!flo[make_pair(pl,anp[j].second)]) { cout<<"NO"<<endl; flag=0; break; } } } } if(flag==0) { break; } } if(flag) { cout<<"YES"<<endl; } } if(a==3) { bool flag=1; for(int i=0; i<ans; i++) { if(anp[i].first!=anp[i].second) { if(flo[make_pair(anp[i].second,anp[i].first)]) { flag=0; break; } } } if(flag) cout<<"YES"<<endl; else cout<<"NO"<<endl; } if(a==4) { bool flag=1; for(int i=0; i<ans; i++) { if(anp[i].first==anp[i].second) { flag=0; break; } } if(flag) cout<<"YES"<<endl; else cout<<"NO"<<endl; } if(a==5) { bool flag=1; for(int i=0; i<ans; i++) { if(!flo[make_pair(anp[i].second,anp[i].first)]) { flag=0; break; } } if(flag) cout<<"YES"<<endl; else cout<<"NO"<<endl; } } } return 0; }
标签:lse long namespace IV air bsp code fir nbsp
原文地址:https://www.cnblogs.com/smallocean/p/9153260.html