求助!!

有没有大佬发片题解
全部评论
今天的题目明天会直播讲题,题解也会发出
点赞 回复
分享
发布于 2018-09-08 16:44
#include <bits/stdc++.h> #include <iostream> #include <string> #include <map> #include <set> #include <queue> #include <vector> #include <list> #include <deque> #define rep(i,n) for (register int i = 1; i <= n; i++ ) #define fo(i,x,y) for (register int i = x; i <= y; i++ ) #pragma GCC optimize(3) using namespace std; template <class T> inline void read(register T &x) {     register long long flag = 1;     x = 0; register char ch = getchar();     for( ; !isdigit(ch) ; ch = getchar() ) if(ch == '-') flag = -1;     for( ; isdigit(ch) ; ch = getchar() ) x = (x << 1) + (x << 3) + (ch ^ 48);     x *= flag; } template <class T> inline void write(register T x) {     if (x < 0) putchar('-'), x = -x;     if (x > 9) write(x / 10);     putchar(x % 10 + '0'); } template <class T> inline void writeln(register T x) {     write(x);     puts(""); } template <class T> inline T Check_Max(register T a, register T b) {     return a > b ? a : b; } enum {     MAXN = 110 }; string str[MAXN], Temp; int n, m, len, ans, t[10]; map <string, int> _Hash; inline int Doit() {     for (register int i = 0; i < 8; i++ )         if(t[t[i]] ^ t[i]) return 0;              _Hash.clear();     for (register int i = 1; i <= n; i++ )     {         for (register int j = 0; j < len; j++ )         Temp[j] = t[str[i][j] - 97] + 97;         _Hash[Temp]++;     }           register int Result = 0;     map <string, int> :: iterator iter;          for (iter = _Hash.begin(); iter != _Hash.end(); iter++)         Result += iter -> second * (iter -> second - 1) >> 1;     return Result; } inline void DFS(register int Step, register int Now) {     if (Now > m) return;          if (Step == 8)     {         ans = Check_Max(ans, Doit());          return;     }          for (register int i = 0; i <= Step; i++ )     {         t[Step] = i; DFS(Step + 1, (i != Step) + Now);     }      } int main(void) {     read(n); read(len); read(m);          if (m > 6)     {         writeln(n * (n - 1) >> 1);         return 0;     }          Temp.resize(len);          for (register int i = 1; i <= n; i++ )         cin >> str[i];          DFS(0, 0);             writeln(ans);       return 0; }
点赞 回复
分享
发布于 2018-09-08 22:28
联易融
校招火热招聘中
官网直投

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务