7-1 懂的都懂
Published on 2022-11-17 23:01 in 暂未分类 with 林动

7-1 懂的都懂

    7-1 懂的都懂
    分数 20
    作者 DAI, Longao
    单位 杭州百腾教育科技有限公司
    b3ceb051352ac65c29767cc3ecf2b21192138add.jpg

    众所周知,在互联网上有很多话是不好直接说出来的,不过一些模糊的图片仍然能让网友看懂你在说什么。然而对这种言论依然一定要出重拳,所以请你实现一个简单的匹配算法。

    现在我们采集了原图的一些特征数据,由 N 个小于 255 的非负整数组成,假设对于给定的若干张由 M
    i

    个同样小于 255 的非负整数组成的新图的特征数据,每个数据都可以由原图中任意四个不同数据的平均值计算而来,则称新图为原图的相似图片。对于给出的数据,请你判断是不是相似图片。

    注意,不同数据指的并非是数据的值不同,而是不能取同一个数据多次。对于两个相同值的数据,如果给出两次,则可以取两次。

    输入格式:
    输入第一行是两个整数 N,K (1 ≤ N ≤ 50, 1 ≤ K ≤ 200),表示采集的原图的特征数据个数和新图的张数。

    接下来一行为 N 个小于 255 的非负整数,表示原图的特征数据。

    最后的 K 行,每行第一个数是 M
    i

    (1 ≤ M
    i

    ≤ 200),表示新图的特征数据个数。然后是 M
    i

    个小于 255 的非负整数,表示新图的特征数据。

    输出格式:
    对于每一张新图,如果为相似图片,则在一行中输出 Yes,否则输出 No。

    输入样例:
    5 3
    4 8 12 20 40
    3 11 16 19
    3 12 16 19
    10 11 11 11 11 11 11 11 11 11 11
    输出样例:
    Yes
    No
    Yes

    #include <bits/stdc++.h> 
    
    using namespace std;
    
    int a[100],b[4];
    bool st[1200];
    int n,k;
    void dfs(int t,int x)
    {
    	if(t==4)
    	{
    		int s=0;
    		for(int i=0;i<4;++i)s+=b[i];
    		//s/=4;
    		st[s]=true;
    		return ;
    	}
    	for(int i=x;i<n;++i){
    		b[t]=a[i];
    		dfs(t+1,i+1);
    	}
    }
    int main()
    {
    	cin>>n>>k;
    	for(int i=0;i<n;++i)cin>>a[i];
    	dfs(0,0);
    	while(k--)
    	{
    		int t;cin>>t;
    		bool flag=true;
    		for(int i=0;i<t;++i)
    		{
    			int x;cin>>x;
    			x*=4;
    			if(st[x]==false){
    				flag=false;
    			}
    		}
    		if(flag)cout<<"Yes"<<endl;
    		else cout<<"No"<<endl;
    	}
    	return 0;
    }
    
    posted @   林动  阅读(22)  评论(0编辑  收藏  举报
    相关博文:
    阅读排行:
    · 震惊!C++程序真的从main开始吗?99%的程序员都答错了
    · winform 绘制太阳,地球,月球 运作规律
    · 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
    · 上周热点回顾(3.3-3.9)
    · 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
    点击右上角即可分享
    微信分享提示