忆画·雪幕前事·SAT

· · 个人记录

上一期

这不咱传统技能吗,搞起!

补充说明:第一个是稀有度,第二个是元素(火水风雷草冰岩),第三个是武器(单双弓长法,这里顺序和上期不同),第四个是国家(蒙璃稻须枫纳),第五个是芒荒。

#include<iostream>
#include<string>
#include<tuple>
#include<vector>
using ch=std::tuple<std::string,int,int,int,int,int>;
using co=std::tuple<int,int,int,int>;
const std::vector<ch>vch{
ch{"Albedo"     ,5,1<<6,1<<0,1<<0,0},
ch{"Alhaitham"  ,5,1<<4,1<<0,1<<3,0},
ch{"Aloy"       ,5,1<<5,1<<2,0,0},
ch{"Amber"      ,4,1<<0,1<<2,1<<0,0},
ch{"Arataki_Itto",5,1<<6,1<<1,1<<2,0},
ch{"Arlecchino" ,5,1<<0,1<<3,1<<6,0},
ch{"Baizhu"     ,5,1<<4,1<<4,1<<1,0},
ch{"Barbara"    ,4,1<<1,1<<4,1<<0,0},
ch{"Beidou"     ,4,1<<3,1<<1,1<<1,0},
ch{"Bennett"    ,4,1<<0,1<<0,1<<0,0},
ch{"Candace"    ,4,1<<1,1<<3,1<<3,0},
ch{"Charlotte"  ,4,1<<5,1<<4,1<<4,1<<0},
ch{"Chasca"     ,5,1<<2,1<<2,1<<5,0},
ch{"Chevreuse"  ,4,1<<0,1<<3,1<<4,1<<1},
ch{"Chiori"     ,5,1<<6,1<<0,1<<2,0},
ch{"Chongyun"   ,4,1<<5,1<<1,1<<1,0},
ch{"Citlali"    ,5,1<<5,1<<4,1<<5,0},
ch{"Clorinde"   ,5,1<<3,1<<0,1<<4,1<<1},
ch{"Collei"     ,4,1<<4,1<<2,1<<3,0},
ch{"Cyno"       ,5,1<<3,1<<3,1<<3,0},
ch{"Dahlia"     ,4,1<<1,1<<4,1<<0,0},
ch{"Dehya"      ,5,1<<0,1<<1,1<<3,0},
ch{"Diluc"      ,5,1<<0,1<<1,1<<0,0},
ch{"Diona"      ,4,1<<5,1<<2,1<<0,0},
ch{"Dori"       ,4,1<<3,1<<1,1<<3,0},
ch{"Escoffier"  ,5,1<<5,1<<3,1<<4,1<<1},
ch{"Eula"       ,5,1<<5,1<<1,1<<0,0},
ch{"Faruzan"    ,4,1<<2,1<<2,1<<3,0},
ch{"Fischl"     ,4,1<<3,1<<2,1<<0,0},
ch{"Freminet"   ,4,1<<5,1<<1,1<<4,1<<0},
ch{"Furina"     ,5,1<<1,1<<0,1<<4,1<<0|1<<1},
ch{"Gaming"     ,4,1<<0,1<<1,1<<1,0},
ch{"Ganyu"      ,5,1<<5,1<<2,1<<1,0},
ch{"Gorou"      ,4,1<<6,1<<2,1<<2,0},
ch{"Hu_Tao"     ,5,1<<0,1<<3,1<<1,0},
ch{"Iansan"     ,4,1<<3,1<<3,1<<5,0},
ch{"Ifa"        ,4,1<<2,1<<4,1<<5,0},
ch{"Ineffa"     ,5,1<<3,1<<3,0,0},
ch{"Jean"       ,5,1<<2,1<<0,1<<0,0},
ch{"Kachina"    ,4,1<<6,1<<3,1<<5,0},
ch{"Kaedehara_Kazuha",5,1<<2,1<<0,1<<2,0},
ch{"Kaeya"      ,4,1<<5,1<<0,1<<0,0},
ch{"Kamisato_Ayaka",5,1<<5,1<<0,1<<2,0},
ch{"Kamisato_Ayato",5,1<<1,1<<0,1<<2,0},
ch{"Kaveh"      ,4,1<<4,1<<1,1<<3,0},
ch{"Keqing"     ,5,1<<3,1<<0,1<<1,0},
ch{"Kinich"     ,5,1<<4,1<<1,1<<5,0},
ch{"Kirara"     ,4,1<<4,1<<0,1<<2,0},
ch{"Klee"       ,5,1<<0,1<<4,1<<0,0},
ch{"Kujou_Sara" ,4,1<<3,1<<2,1<<2,0},
ch{"Kuki_Shinobu",4,1<<3,1<<0,1<<2,0},
ch{"Lan_Yan"    ,4,1<<2,1<<4,1<<1,0},
ch{"Layla"      ,4,1<<5,1<<0,1<<3,0},
ch{"Lisa"       ,4,1<<3,1<<4,1<<0,0},
ch{"Lynette"    ,4,1<<2,1<<0,1<<4,1<<1},
ch{"Lyney"      ,5,1<<0,1<<2,1<<4,1<<0},
ch{"Mavuika"    ,5,1<<0,1<<1,1<<5,0},
ch{"Mika"       ,4,1<<5,1<<3,1<<0,0},
ch{"Mona"       ,5,1<<1,1<<4,1<<0,0},
ch{"Mualani"    ,5,1<<1,1<<4,1<<5,0},
ch{"Nahida"     ,5,1<<4,1<<4,1<<3,0},
ch{"Navia"      ,5,1<<6,1<<1,1<<4,1<<1},
ch{"Neuvillette",5,1<<1,1<<4,1<<4,1<<0},
ch{"Nilou"      ,5,1<<1,1<<0,1<<3,0},
ch{"Ningguang"  ,4,1<<6,1<<4,1<<1,0},
ch{"Noelle"     ,4,1<<6,1<<1,1<<0,0},
ch{"Ororon"     ,4,1<<3,1<<2,1<<5,0},
ch{"Qiqi"       ,5,1<<5,1<<0,1<<1,0},
ch{"Raiden_Shogun",5,1<<3,1<<3,1<<2,0},
ch{"Razor"      ,4,1<<3,1<<1,1<<0,0},
ch{"Rosaria"    ,4,1<<5,1<<3,1<<0,0},
ch{"Sangonomiya_Kokomi",5,1<<1,1<<4,1<<2,0},
ch{"Sayu"       ,4,1<<2,1<<1,1<<2,0},
ch{"Sethos"     ,4,1<<3,1<<2,1<<3,0},
ch{"Shenhe"     ,5,1<<5,1<<3,1<<1,0},
ch{"Shikanoin_Heizou",4,1<<2,1<<4,1<<2,0},
ch{"Sigewinne"  ,5,1<<1,1<<2,1<<4,1<<1},
ch{"Skirk"      ,5,1<<5,1<<0,0,0},
ch{"Sucrose"    ,4,1<<2,1<<4,1<<0,0},
ch{"Tartaglia"  ,5,1<<1,1<<2,1<<6,0},
ch{"Thoma"      ,4,1<<0,1<<3,1<<2,0},
ch{"Tighnari"   ,5,1<<4,1<<2,1<<3,0},
ch{"Traveler_Anemo",5,1<<2,1<<0,0,0},
ch{"Traveler_Dendro",5,1<<4,1<<0,0,0},
ch{"Traveler_Electro",5,1<<3,1<<0,0,0},
ch{"Traveler_Geo",5,1<<6,1<<0,0,0},
ch{"Traveler_Hydro",5,1<<1,1<<0,0,1<<0},
ch{"Traveler_Pyro",5,1<<0,1<<0,0,0},
ch{"Varesa"     ,5,1<<3,1<<4,1<<5,0},
ch{"Venti"      ,5,1<<2,1<<2,1<<0,0},
ch{"Wanderer"   ,5,1<<2,1<<4,1<<3,0},
ch{"Wriothesley",5,1<<5,1<<4,1<<4,1<<1},
ch{"Xiangling"  ,4,1<<0,1<<3,1<<1,0},
ch{"Xianyun"    ,5,1<<2,1<<4,1<<1,0},
ch{"Xiao"       ,5,1<<2,1<<3,1<<1,0},
ch{"Xilonen"    ,5,1<<6,1<<0,1<<5,0},
ch{"Xingqiu"    ,4,1<<1,1<<0,1<<1,0},
ch{"Xinyan"     ,4,1<<0,1<<1,1<<1,0},
ch{"Yae_Miko"   ,5,1<<3,1<<4,1<<2,0},
ch{"Yanfei"     ,4,1<<0,1<<4,1<<1,0},
ch{"Yaoyao"     ,4,1<<4,1<<3,1<<1,0},
ch{"Yelan"      ,5,1<<1,1<<2,1<<1,0},
ch{"Yoimiya"    ,5,1<<0,1<<2,1<<2,0},
ch{"Yumemizuki_Mizuki",5,1<<2,1<<4,1<<2,0},
ch{"Yun_Jin"    ,4,1<<6,1<<3,1<<1,0},
ch{"Zhongli"    ,5,1<<6,1<<3,1<<1,0}};
const std::vector<co>vco{
co{0,0,1<<5,0},
co{1<<0,0,0,0},
co{0,0,1<<4,0},
co{1<<1,0,0,0},
co{0,1<<2,0,0},
co{1<<4,0,0,0},
co{0,0,1<<2,0},
co{1<<3,0,0,0},
co{0,0,1<<1,0},
co{1<<2,0,0,0},
co{0,1<<1,0,0},
co{0,1<<0,0,0}};
bool Tra(int x){return std::get<0>(vch[x]).substr(0,3)=="Tra";}
bool ez(int x){return Tra(x)||std::get<1>(vch[x])==4;}
int main()
{
    const int n=vch.size();
    for(int i=0;i<n;i++)
        for(int j=i+1;j<n;j++)
            for(int k=j+1;k<n;k++)
                for(int l=k+1;l<n;l++)
                {
                    using std::get;
                    int _=Tra(i)+Tra(j)+Tra(k)+Tra(l);
                    if(_<=1&&ez(i)&&ez(j)&&ez(k)&&ez(l))
                    {
                        co x{get<2>(vch[i])|get<2>(vch[j])|get<2>(vch[k])|get<2>(vch[l]),
                        get<3>(vch[i])|get<3>(vch[j])|get<3>(vch[k])|get<3>(vch[l]),
                        get<4>(vch[i])|get<4>(vch[j])|get<4>(vch[k])|get<4>(vch[l]),
                        get<5>(vch[i])|get<5>(vch[j])|get<5>(vch[k])|get<5>(vch[l])};
                        bool f=1;
                        for(const co&y:vco)
                            if(!(get<0>(x)&get<0>(y))&&!(get<1>(x)&get<1>(y))&&!(get<2>(x)&get<2>(y))&&!(get<3>(x)&get<3>(y)))
                            {
                                f=0;
                                break;
                            }
                        if(f)
                            std::cout<<get<0>(vch[i])<<' '<<get<0>(vch[j])<<' '<<get<0>(vch[k])<<' '<<get<0>(vch[l])<<'\n';
                    }
                }
    return 0;
}

运行后可知没有方案。(废话,五种元素分给四个人?)