A:
1 #include<cstdio> 2 #include<cstring> 3 #include<algorithm> 4 #include<iostream> 5 #include<string> 6 #include<vector> 7 #include<stack> 8 #include<bitset> 9 #include<cstdlib> 10 #include<cmath> 11 #include<set> 12 #include<list> 13 #include<deque> 14 #include<map> 15 #include<queue> 16 #include <iomanip> 17 #include<ctime> 18 using namespace std; 19 #define IOS ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0); 20 #define TLE (double)clock()/CLOCKS_PER_SEC<=0.95 21 #define int long long 22 #define double long double 23 #define endl '\n' 24 #define inf LLONG_MAX 25 #define iinf INT_MAX 26 typedef pair<int,int> PII; 27 const double PI = acos(-1.0); 28 const double eps = 1e-6; 29 const int INF = 0x3f3f3f3f; 30 const int N = 1e2+10; 31 struct node 32 { 33 string id; 34 int age; 35 }p[N]; 36 int n; 37 signed main() 38 { 39 IOS; 40 cin>>n; 41 int idx=inf; 42 int sx=0; 43 for(int i=1;i<=n;i++) 44 { 45 cin>>p[i].id>>p[i].age; 46 if(p[i].age<idx) 47 { 48 sx=i; 49 idx=p[i].age; 50 } 51 } 52 for(int i=sx;i<=n;i++) 53 { 54 cout<<p[i].id<<endl; 55 } 56 for(int i=1;i<sx;i++) 57 { 58 cout<<p[i].id<<endl; 59 } 60 return 0; 61 }
B:
数字的后几位截取不如直接处理字符串
1 #include<cstdio> 2 #include<cstring> 3 #include<algorithm> 4 #include<iostream> 5 #include<string> 6 #include<vector> 7 #include<stack> 8 #include<bitset> 9 #include<cstdlib> 10 #include<cmath> 11 #include<set> 12 #include<list> 13 #include<deque> 14 #include<map> 15 #include<queue> 16 #include <iomanip> 17 #include<ctime> 18 using namespace std; 19 #define IOS ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0); 20 #define TLE (double)clock()/CLOCKS_PER_SEC<=0.95 21 #define int long long 22 #define double long double 23 #define endl '\n' 24 #define inf LLONG_MAX 25 #define iinf INT_MAX 26 typedef pair<int,int> PII; 27 const double PI = acos(-1.0); 28 const double eps = 1e-6; 29 const int INF = 0x3f3f3f3f; 30 const int N = 1e9; 31 int n; 32 void solved(int x) 33 { 34 string s=to_string(x); 35 if(x<=1e3-1) 36 { 37 cout<<x<<endl; 38 } 39 else if(x>=1e3&&x<=1e4-1) 40 { 41 for(int i=0;i<s.length()-1;i++) 42 { 43 cout<<s[i]; 44 } 45 cout<<"0"<<endl; 46 } 47 else if(x>=1e4&&x<1e5) 48 { 49 for(int i=0;i<s.length()-2;i++) 50 { 51 cout<<s[i]; 52 } 53 cout<<"00"<<endl; 54 } 55 else if(x>=1e5&&x<1e6) 56 { 57 for(int i=0;i<s.length()-3;i++) 58 { 59 cout<<s[i]; 60 } 61 cout<<"000"<<endl; 62 } 63 else if(x>=1e6&&x<1e7) 64 { 65 for(int i=0;i<s.length()-4;i++) 66 { 67 cout<<s[i]; 68 } 69 cout<<"0000"<<endl; 70 } 71 else if(x>=1e7&&x<1e8) 72 { 73 for(int i=0;i<s.length()-5;i++) 74 { 75 cout<<s[i]; 76 } 77 cout<<"00000"<<endl; 78 } 79 else if(x>=1e8&&x<1e9) 80 { 81 for(int i=0;i<s.length()-6;i++) 82 { 83 cout<<s[i]; 84 } 85 cout<<"000000"<<endl; 86 } 87 } 88 signed main() 89 { 90 IOS; 91 cin>>n; 92 solved(n); 93 return 0; 94 }
C:
1 #include<cstdio> 2 #include<cstring> 3 #include<algorithm> 4 #include<iostream> 5 #include<string> 6 #include<vector> 7 #include<stack> 8 #include<bitset> 9 #include<cstdlib> 10 #include<cmath> 11 #include<set> 12 #include<list> 13 #include<deque> 14 #include<map> 15 #include<queue> 16 #include <iomanip> 17 #include<ctime> 18 using namespace std; 19 #define IOS ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0); 20 #define TLE (double)clock()/CLOCKS_PER_SEC<=0.95 21 #define int long long 22 #define double long double 23 #define x first 24 #define y second 25 #define endl '\n' 26 #define inf LLONG_MAX 27 #define iinf INT_MAX 28 typedef pair<int,int> PII; 29 const double PI = acos(-1.0); 30 const double eps = 1e-6; 31 const int INF = 0x3f3f3f3f; 32 const int N = 2e3+10; 33 int n,d; 34 PII a[N]; 35 bool vis[N][N]; 36 bool flag[N]; 37 // void bfs(int tx,int ty,int id) 38 // { 39 // vis[id]=true; 40 // queue<PII>q; 41 // q.push({tx,ty}); 42 // while(!q.empty()) 43 // { 44 // int px=q.front().x; 45 // int py=q.front().y; 46 // q.pop(); 47 // for(int i=id+1;i<=n;i++) 48 // { 49 // int nx=a[i].x; 50 // int ny=a[i].y; 51 // if(vis[i]) continue; 52 // if(((px-nx))*(px-nx)+(py-ny)*(py-ny)>d*d) continue; 53 // id=i; 54 // vis[i]=true; 55 // q.push({nx,ny}); 56 // } 57 // } 58 // } 59 void bfs(int tx,int ty,int id) 60 { 61 flag[id]=true; 62 queue<int>q; 63 q.push(id); 64 while(!q.empty()) 65 { 66 int px=q.front(); 67 q.pop(); 68 for(int i=1;i<=n;i++) 69 { 70 if(!flag[i]&&vis[px][i]) 71 { 72 flag[i]=true; 73 q.push(i); 74 } 75 } 76 } 77 } 78 signed main() 79 { 80 IOS; 81 cin>>n>>d; 82 for(int i=1;i<=n;i++) 83 { 84 cin>>a[i].x>>a[i].y; 85 } 86 int xx=a[1].x; 87 int yy=a[1].y; 88 for(int i=1;i<=n;i++) 89 { 90 for(int j=1;j<=n;j++) 91 { 92 if((a[i].x-a[j].x)*(a[i].x-a[j].x)+(a[i].y-a[j].y)*(a[i].y-a[j].y)<=d*d) 93 { 94 vis[i][j]=true; 95 } 96 } 97 } 98 bfs(xx,yy,1); 99 for(int i=1;i<=n;i++) 100 { 101 if(!flag[i]) 102 { 103 cout<<"No"<<endl; 104 } 105 else 106 { 107 cout<<"Yes"<<endl; 108 } 109 } 110 return 0; 111 }
D:
// 已知蛋糕总尺寸,w*h,切块时:w边以a[1]、a[2]、、、、a[A]切;h边以b[1]、、、、b[B]切
// 求哪一块蛋糕草莓最多、最少草莓数;
// 根据每个草莓出现的位置找到符合该草莓的区域块边界,
// 使用lower_bound()找到最右边界,因为lower_bound()是不小于目标值的第一个数,使用map记录出现的边界坐标,
// 即mx=次数最多的,mn判断是否为0则看map中长度是否为(a+1)*(B+1),若是,则不存在草莓数为0的块出现。以最右边界为该块标志。
1 // 已知蛋糕总尺寸,w*h,切块时:w边以a[1]、a[2]、、、、a[A]切;h边以b[1]、、、、b[B]切 2 // 求哪一块蛋糕草莓最多、最少草莓数; 3 // 根据每个草莓出现的位置找到符合该草莓的区域块边界, 4 // 使用lower_bound()找到最右边界,因为lower_bound()是不小于目标值的第一个数,使用map记录出现的边界坐标, 5 // 即mx=次数最多的,mn判断是否为0则看map中长度是否为(a+1)*(B+1),若是,则不存在草莓数为0的块出现。以最右边界为该块标志。 6 #include<cstdio> 7 #include<cstring> 8 #include<algorithm> 9 #include<iostream> 10 #include<string> 11 #include<vector> 12 #include<stack> 13 #include<bitset> 14 #include<cstdlib> 15 #include<cmath> 16 #include<set> 17 #include<list> 18 #include<deque> 19 #include<map> 20 #include<queue> 21 #include <iomanip> 22 #include<ctime> 23 using namespace std; 24 #define IOS ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0); 25 #define TLE (double)clock()/CLOCKS_PER_SEC<=0.95 26 #define int long long 27 #define double long double 28 #define endl '\n' 29 #define x first 30 #define y second 31 #define inf LLONG_MAX 32 #define iinf INT_MAX 33 typedef pair<int,int> PII; 34 const double PI = acos(-1.0); 35 const double eps = 1e-6; 36 const int INF = 0x3f3f3f3f; 37 const int N = 2e5+10; 38 int h,w; 39 int n; 40 int maxx=-1; 41 int minn=inf; 42 PII q[N]; 43 int a[N]; 44 int b[N]; 45 map<PII,int>mp; 46 signed main() 47 { 48 IOS; 49 cin>>h>>w; 50 cin>>n; 51 for(int i=1;i<=n;i++) 52 { 53 cin>>q[i].x>>q[i].y; 54 } 55 int A; 56 cin>>A; 57 for(int i=1;i<=A;i++) 58 { 59 cin>>a[i]; 60 } 61 int B; 62 cin>>B; 63 for(int i=1;i<=B;i++) 64 { 65 cin>>b[i]; 66 } 67 for(int i=1;i<=n;i++) 68 { 69 int px=lower_bound(a+1,a+1+A,q[i].x)-a; 70 int py=lower_bound(b+1,b+1+B,q[i].y)-b; 71 mp[{px,py}]++; 72 } 73 int cnt=0; 74 for(auto &it:mp) 75 { 76 maxx=max(maxx,it.y); 77 minn=min(minn,it.y); 78 cnt++; 79 } 80 if(cnt<(A+1)*(B+1)) 81 { 82 minn=0; 83 } 84 cout<<minn<<" "<<maxx<<endl; 85 return 0; 86 }
E:
使用并查集维护更方便一些
1 #include<cstdio> 2 #include<cstring> 3 #include<algorithm> 4 #include<iostream> 5 #include<string> 6 #include<vector> 7 #include<stack> 8 #include<bitset> 9 #include<cstdlib> 10 #include<cmath> 11 #include<set> 12 #include<list> 13 #include<deque> 14 #include<map> 15 #include<queue> 16 #include <iomanip> 17 #include<ctime> 18 using namespace std; 19 #define IOS ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0); 20 #define TLE (double)clock()/CLOCKS_PER_SEC<=0.95 21 #define int long long 22 #define double long double 23 #define endl '\n' 24 #define inf LLONG_MAX 25 #define iinf INT_MAX 26 typedef pair<int,int> PII; 27 const double PI = acos(-1.0); 28 const double eps = 1e-6; 29 const int INF = 0x3f3f3f3f; 30 const int N = 2e5+10; 31 int n,m; 32 vector<int>g[N]; 33 int a[N],b[N]; 34 int s[N]; 35 int height[N]; 36 set<PII>ss;//表示不能被相互到达的 37 void init()//合并 38 { 39 for( int i=1;i<=N;i++) 40 { 41 s[i]=i; 42 height[i]=0; 43 } 44 } 45 int find_s(int x)//查找 -路压 46 { 47 if(x!=s[x]) 48 { 49 s[x]=find_s(s[x]); 50 } 51 return s[x]; 52 } 53 void union_s(int x,int y)//合并优化 54 { 55 x=find_s(x); 56 y=find_s(y); 57 if(height[x]==height[y]) 58 { 59 height[x]=height[x]+1; 60 s[y]=x; 61 } 62 if(height[x]<height[y]) 63 { 64 s[x]=y; 65 } 66 else 67 { 68 s[y]=x; 69 } 70 } 71 signed main() 72 { 73 IOS; 74 init(); 75 bool flag=true; 76 cin>>n>>m; 77 for(int i=1;i<=m;i++) 78 { 79 int u,v; 80 cin>>u>>v; 81 g[u].push_back(v); 82 g[v].push_back(u); 83 union_s(u,v); 84 union_s(v,u); 85 } 86 int k; 87 cin>>k; 88 for(int i=1;i<=k;i++) 89 { 90 cin>>a[i]>>b[i]; 91 int fx=find_s(a[i]); 92 int fy=find_s(b[i]); 93 ss.insert({fx,fy}); 94 ss.insert({fy,fx}); 95 } 96 int q; 97 cin>>q; 98 while(q--) 99 { 100 int u,v; 101 cin>>u>>v; 102 int fx=find_s(u); 103 int fy=find_s(v); 104 if(ss.count({fx,fy})) 105 { 106 cout<<"No"<<endl; 107 } 108 else{ 109 cout<<"Yes"<<endl; 110 } 111 } 112 return 0; 113 }
- Beginner AtCoder Contest 304beginner atcoder contest 304 contest programming beginner atcoder beginner atcoder contest 296 beginner atcoder contest 295 beginner atcoder contest abcde beginner atcoder contest 335 beginner atcoder contest 332 beginner atcoder contest 328 beginner atcoder contest 315 beginner atcoder contest 334