2 条题解

  • 0
    @ 2025-10-8 16:57:56
    #include <bits/stdc++.h>
    using namespace std;
    const int N=110;
    int n, m, u[N], ans, Ans[N],sum[N];
    char str[N][N];
    void dfs(int k)
    {
    	if(k > n)
        {
    		bool flag=True;
    		int s=0;
    		for(int i=1; i<=m; i++)
            {
    			s=0;for(int j=1; j<=n; j++)if(str[i][j]=='1')s+=u[j];
    			if(s!=sum[i]){flag=False;break;} 
    		}
    		if(flag)
            {
    			ans++;
    			if(ans>1){printf("NOT UNIQUE");exit(0);}
    			for(int i=1; i<=n; i++) Ans[i]=u[i];
    		} 
    		return ;
    	}
    	dfs(k+1);
        u[k]=1;
        dfs(k+1);
        u[k]=0;
    } 
    int main()
    {
    	scanf("%d%d", &n, &m);
    	for(int i=1; i<=m; i++) scanf("%s%d", str[i]+1, &sum[i]);
    	dfs(1);
    	if(ans==0) printf("IMPOSSIBLE");
    	else for(int i=1; i<=n; i++) printf("%d", Ans[i]);
    	return 0;
    }
    
    • 0
      @ 2025-10-8 16:57:50
      #include<bits/stdc++.h>
      using namespace std;
      const int N=110;
      int n, m, u[N], ans, Ans[N],sum[N];
      char str[N][N];
      void dfs(int k)
      {
      	if(k>n)
          {
      		bool flag=True;
      		int s=0;
      		for(int i=1; i<=m; i++)
              {
      			s=0;for(int j=1; j<=n; j++)if(str[i][j]=='1')s+=u[j];
      			if(s!=sum[i]){flag=False;break;} 
      		}
      		if(flag)
              {
      			ans++;
      			if(ans>1){printf("NOT UNIQUE");exit(0);}
      			for(int i=1; i<=n; i++) Ans[i]=u[i];
      		} 
      		return ;
      	}
      	dfs(k+1);
          u[k]=1;
          dfs(k+1);
          u[k]=0;
      } 
      int main()
      {
      	scanf("%d%d", &n, &m);
      	for(int i=1; i<=m; i++) scanf("%s%d", str[i]+1, &sum[i]);
      	dfs(1);
      	if(ans==0) printf("IMPOSSIBLE");
      	else for(int i=1; i<=n; i++) printf("%d", Ans[i]);
      	return 0;
      } 
      • 1

      【递归】解01方程组 [USACO10DEC]The Trough Game S

      信息

      ID
      1573
      时间
      1000ms
      内存
      128MiB
      难度
      5
      标签
      递交数
      29
      已通过
      15
      上传者