跟奥巴马一起画方块&&查验身份证&&集合相似度

#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;
}
永远年轻 永远热泪盈眶!

浙公网安备 33010602011771号