1 条题解

  • 0
    @ 2025-8-24 22:14:47

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar Yellow_Lemon_Tree
    。。

    搬运于2025-08-24 22:14:47,当前版本为作者最后更新于2020-03-02 15:17:40,作者可能在搬运后再次修改,您可在原文处查看最新版

    自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多

    以下是正文


    先输入,然后字典序排序,由于n<=7,就把所有可能全排一遍,然后判断是否符合规则,符合输出,不符合继续,我用了STL。

    不多说,上题解!

    #include<bits/stdc++.h>
    using namespace std;
    vector <string> cows,st_a,st_b; 
    int n;
    int find(string c)
    {
    	for(int i=0;i<8;i++)
    	{
    		if(cows[i]==c) return i;
    	}
    	return -1;
    }
    bool sati()
    {
    	for(int i=0;i<n;i++)
    	{
    		if(abs(find(st_a[i])-find(st_b[i]))!=1) return false;
    	}
    	return true;
    }
    int main()
    {
    	cows.push_back("Beatrice");
    	cows.push_back("Belinda");
    	cows.push_back("Bella");
    	cows.push_back("Bessie");
    	cows.push_back("Betsy");
    	cows.push_back("Blue");
    	cows.push_back("Buttercup");
    	cows.push_back("Sue");
        cin>>n;
        string a,b,t;
        for(int i=0;i<n;i++)
        {
        	cin>>a;
        	cin>>t;
        	cin>>t;
        	cin>>t;
        	cin>>t;
        	cin>>b;
        	st_a.push_back(a);
        	st_b.push_back(b);
    	}
    	do{
    		if(sati()){
    			for(int i=0;i<8;i++) cout<<cows[i]<<endl;
    			break;
    		}
    	}
    	while(next_permutation(cows.begin(),cows.end()));
    return 0;
    }
    
    

    希望能过!

    记得点个赞!

    • 1

    信息

    ID
    4837
    时间
    1000ms
    内存
    125MiB
    难度
    2
    标签
    递交数
    0
    已通过
    0
    上传者