跟奥巴马一起画方块&&查验身份证&&集合相似度
#include <bits/stdc++.h> using namespace std; typedef long long ll; int n,col; char c; int main() { std::ios::sync_with_stdio(false); cin.tie(0); std::cin>>n>>c; if(n&1) col = (n+1)>>1; else col = n >> 1; for(int i = 0; i < col; i++) { for(int j = 0; j < n; j++) std::cout<<c; std::cout<<'\n'; } return 0; }
简单题,不清楚为什么把不合法的先存储,最后再输出会wa,orz,玄学。
#include <bits/stdc++.h> using namespace std; typedef long long ll; int n,total; char str[110][20]; int len[20]; int sum,a[110][20]; int p[20] = {7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2}; char mp[] = {'1','0','X','9','8','7','6','5','4','3','2'}; int main() { std::ios::sync_with_stdio(false); cin.tie(0); std::cin>>n; for(int i = 0; i < n; i++) { std::cin>>str[i]; len[i] = strlen(str[i]); } // for(int i = 0; i < n; i++) std::cout<<str[i][17]<<" "; std::cout<<'\n'; // for(int i = 0; i < 11; i++) std::cout<<mp[i]<<" "; std::cout<<'\n'; for(int i = 0; i < n; i++) { bool flag = true; for(int j = 0; j < len[i]-1; j++) { int t = str[i][j] - '0'; if(t >= 0 && t <= 9) a[i][j] = t; else flag = false, j = len[i]; } if(!flag) //如果前17位存在不是数字,直接输出 std::cout<<str[i]<<'\n'; else { sum = 0; for(int j = 0; j < len[i] - 1; j++) sum += p[j]*a[i][j]; int mod = sum%11; if(mp[mod] == str[i][17]) //检验最后一位,合法 total ++; else //不合法 std::cout<<str[i]<<'\n'; } } if(total == n) std::cout<<"All passed"<<'\n'; return 0; }
#include <stdio.h> #include <set> using namespace std; typedef long long ll; int n,k,num,x,y,a; set<int>s[55]; set<int>total; int main() { scanf("%d",&n); for(int i = 1; i <= n; i++) { scanf("%d",&num); for(int j = 0; j < num; j++) { scanf("%d",&a); s[i].insert(a); } } scanf("%d",&k); for(int i = 1; i <= k; i++) { total.clear(); int flag = 0; scanf("%d%d",&x,&y); int lenx = s[x].size(), leny = s[y].size(); set<int>::iterator it; for(it = s[x].begin(); it != s[x].end(); it++) if(s[y].find(*it)!=s[y].end()) flag++; //共有的 int yy = lenx + leny - flag; //两个集合总共的元素个数 double ans = (100.0)*flag/yy; printf("%.2f%\n",ans); } return 0; }
永远年轻 永远热泪盈眶!