AIM Tech Round 4 (Div. 2)

A题

分析:暴力

 1 #include "iostream"
 2 #include "cstdio"
 3 #include "cstring"
 4 #include "string"
 5 using namespace std;
 6 const int maxn=100+10;
 7 int vis[maxn],n;
 8 string s;
 9 int main()
10 {
11     cin>>s;
12     cin>>n;
13     int len=s.length();
14     for(int i=0;i<len;i++){
15         vis[s[i]-'a']++;
16     }
17     if(len<n){
18         cout<<"impossible"<<endl;
19     }else{
20         int num=0;
21         for(int i=0;i<30;i++){
22             if(vis[i])
23                 num++;
24         }
25         if(num>=n)
26             cout<<"0"<<endl;
27         else
28             cout<<(n-num)<<endl;
29     }
30     return 0;
31 }
View Code

B题

分析:求不同set的个数,同一个set的元素必须相同,而且是同一行,同一列的。所以对每行,每列,求有多少个0,多少个1,然后集合个数位(2^k-1),最后所有的单个元素都被算了两次,所以最后结果在减去n*m

 1 #include "iostream"
 2 #include "cstdio"
 3 #include "cstring"
 4 #include "string"
 5 #include "vector"
 6 #include "cmath"
 7 using namespace std;
 8 const int maxn=100+10;
 9 int n,m;
10 int a[maxn][maxn];
11 struct Node
12 {
13     int zero,one;
14 };
15 vector<Node>p;
16 int main()
17 {
18     cin>>n>>m;
19     for(int i=1;i<=n;i++)
20         for(int j=1;j<=m;j++)
21             cin>>a[i][j];
22     for(int i=1;i<=n;i++){
23         int num0=0,num1=0;
24         for(int j=1;j<=m;j++){
25             if(a[i][j]==1)
26                 num1++;
27             else
28                 num0++;
29         }
30         Node e;
31         e.zero=num0,e.one=num1;
32         p.push_back(e);
33     }
34     for(int j=1;j<=m;j++){
35         int num0=0,num1=0;
36         for(int i=1;i<=n;i++){
37             if(a[i][j]==1)
38                 num1++;
39             else
40                 num0++;
41         }
42         Node r;
43         r.zero=num0,r.one=num1;
44         p.push_back(r);
45     }
46     long long res=0;
47     for(int i=0;i<p.size();i++){
48         res+=(long long)pow(2,p[i].zero)-(long long)1;
49         res+=(long long)pow(2,p[i].one)-(long long)1;
50     }
51     res-=(n*m);
52     cout<<res<<endl;
53     return 0;
54 }
View Code
原文地址:https://www.cnblogs.com/wolf940509/p/7523375.html