zoukankan      html  css  js  c++  java
  • Hyperset-cf

      题意:n个串,每个串的长度为k,串只含有SET三种字母,如果有三个串符合每个位置的字母都不同或者每个位置的字母都相同,那他们就是符合条件的一组,要求统计有多少组符合题意。n(1e3) k(30)。

      思路:如果暴力枚举就是n3方会T,用map把每个串的序号存下来,通过枚举两个串,构造出第三个符合条件的串,看看有没有出现,有的话ans+1。

    AC代码:复杂度n2k

     1 #include<iostream>
     2 #include<map>
     3 #include<string.h>
     4 using namespace std;
     5 
     6 map<string,int> p;
     7 int n,k;
     8 char s[1510][35];
     9 
    10 
    11 int main(){
    12     cin>>n>>k;
    13     for(int i=1;i<=n;i++){
    14         cin>>s[i];
    15         p[s[i]]=i;
    16     }
    17     int num=0;
    18     for(int i=1;i<=n;i++){
    19         for(int j=i+1;j<=n;j++){
    20             string hjj="";
    21             for(int t=0;t<k;t++){
    22                 if(s[i][t]==s[j][t]) hjj+=s[i][t];
    23                 else{
    24                     if(s[i][t]!='E'&&s[j][t]!='E') hjj+='E';
    25                     if(s[i][t]!='T'&&s[j][t]!='T') hjj+='T';
    26                     if(s[i][t]!='S'&&s[j][t]!='S') hjj+='S';
    27                 }
    28             }
    29             if(p.count(hjj)&& p[hjj]>i&&p[hjj]>j ) num++;
    30         }
    31     }
    32     cout<<num;
    33 }
  • 相关阅读:
    扫盲如何在ECLIPSE中使用条件断点
    春困
    气虚咳喘案
    知足老师论糖尿病
    辨痰之病位与寒热
    常用中药功效比较(任之堂)
    女子全身窜痛案
    小儿外感案
    紫斑案
    读任之堂中药讲记笔记
  • 原文地址:https://www.cnblogs.com/qq2210446939/p/12156612.html
Copyright © 2011-2022 走看看