2 条题解

  • 0
    @ 2026-2-1 14:12:08

    数据较小,O(n^3)没问题

    #include<bits/stdc++.h>
    using namespace std;
    int main()
    {
    	int n;scanf("%d",&n);
    	for(int i=0;i<=n;i++)
    	{
    		for(int j=0;i+j<=n;j++)
    		{
    			for(int k=0;i+j+k<=n;k++)
    			{
    				//三个数三层循环,直接判断合法 
    				printf("%d %d %d\n",i,j,k);//输出情况即可 
    			}
    		}
    	}
    	return 0;
    }
    
    
    • 0
      @ 2026-2-1 10:54:03

      按照题意暴力O(n^3)即可

      #include<bits/stdc++.h>
      using namespace std;
      const int N=2e5+10;
      int n;
      int main()
      {
      	scanf("%d",&n);
      	for(int i=0;i<=n;i++)for(int j=0;j<=n;j++)for(int k=0;k<=n;k++)if(i+j+k<=n)//暴力搜索+判断 
      	{
      		printf("%d %d %d\n",i,j,k);//有则输出 
      	}
      	return 0;
      }
      
      • 1

      信息

      ID
      8263
      时间
      2000ms
      内存
      1024MiB
      难度
      3
      标签
      递交数
      21
      已通过
      19
      上传者