欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

洛谷 P1618 三连击(升级版) 题解

程序员文章站 2022-05-09 13:49:37
...

啊第一次发题解,这次还是用机(wei)智(suo)的方法AC

注意,本题解仅供娱乐

下面先上原来的代码,只是在原来的 P1008 三连击 上添加了输入。

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
int s[10]={0};
int fuc(){//用于检查有没有数字重复 
    sort(s,s+9);
    int dud=0;
    for(int i=0;i<9;i++)
    {
        if(s[i]==s[i+1] or s[i]==0)return 0;//有0也不能过,题目要求1-9数字
        else dud=1;
    }
    return dud;//如果条件满足,进入if() 
}
int main()
{
    int ans[3];
    int k1,k2,k3;
    int x;
    int nans=0;
    cin>>k1>>k2>>k3;
    for(int i=100;i<=999;i++)
        for(int j=100;j<=999;j++)
            for(int k=100;k<=999;k++)
            {    
                if(k2*k3*i==k1*k3*j&&k1*k3*j==k1*k2*k)
                {    //下面三行把i,j,k每位提取出来 
                s[0]=i/100;s[1]=i/10%10;s[2]=i%10;
                s[3]=j/100;s[4]=j/10%10;s[5]=j%10;
                s[6]=k/100;s[7]=k/10%10;s[8]=k%10;
                    x=fuc();
                    if(x)
                    {
                    ans[0]=i;ans[1]=j;ans[2]=k;
                    sort(ans,ans+3);//答案升序排列 
                    printf("%d %d %d\n",ans[0],ans[1],ans[2]);//输出写入文件 
                    }
                }            
            }
    return 0;
 }

快乐地提交,发现果然超时~~~~

于是我继续P1008没有完成的打表梦

因为符合题意的答案很少,没有采用文件输出的形式,毕竟亲眼看着答案一点一点蹦出来好哇。

下面上答案生成后的结果

-----------1 1 1
No!!!
-----------1 1 2
No!!!
-----------1 1 3
No!!!
-----------1 1 4
No!!!
-----------1 1 5
No!!!
-----------1 1 6
No!!!
-----------1 1 7
No!!!
-----------1 1 8
No!!!
-----------1 1 9
No!!!
-----------1 2 2
No!!!
-----------1 2 3
192 384 576
219 438 657
273 546 819
327 654 981
-----------1 2 4
No!!!
-----------1 2 5
No!!!
-----------1 2 6
No!!!
-----------1 2 7
No!!!
-----------1 2 8
No!!!
-----------1 2 9
No!!!
-----------1 3 3
No!!!
-----------1 3 4
No!!!
-----------1 3 5
129 387 645
-----------1 3 6
No!!!
-----------1 3 7
No!!!
-----------1 3 8
No!!!
-----------1 3 9
No!!!
-----------1 4 4
No!!!
-----------1 4 5
No!!!
-----------1 4 6
No!!!
-----------1 4 7
No!!!
-----------1 4 8
No!!!
-----------1 4 9
No!!!
-----------1 5 5
No!!!
-----------1 5 6
No!!!
-----------1 5 7
No!!!
-----------1 5 8
No!!!
-----------1 5 9
No!!!
-----------1 6 6
No!!!
-----------1 6 7
No!!!
-----------1 6 8
No!!!
-----------1 6 9
No!!!
-----------1 7 7
No!!!
-----------1 7 8
No!!!
-----------1 7 9
No!!!
-----------1 8 8
No!!!
-----------1 8 9
No!!!
-----------1 9 9
No!!!
-----------2 2 2
No!!!
-----------2 2 3
No!!!
-----------2 2 4
No!!!
-----------2 2 5
No!!!
-----------2 2 6
No!!!
-----------2 2 7
No!!!
-----------2 2 8
No!!!
-----------2 2 9
No!!!
-----------2 3 3
No!!!
-----------2 3 4
No!!!
-----------2 3 5
No!!!
-----------2 3 6
No!!!
-----------2 3 7
No!!!
-----------2 3 8
No!!!
-----------2 3 9
No!!!
-----------2 4 4
No!!!
-----------2 4 5
No!!!
-----------2 4 6
192 384 576
219 438 657
273 546 819
327 654 981
-----------2 4 7
No!!!
-----------2 4 8
No!!!
-----------2 4 9
No!!!
-----------2 5 5
No!!!
-----------2 5 6
No!!!
-----------2 5 7
No!!!
-----------2 5 8
No!!!
-----------2 5 9
No!!!
-----------2 6 6
No!!!
-----------2 6 7
No!!!
-----------2 6 8
No!!!
-----------2 6 9
No!!!
-----------2 7 7
No!!!
-----------2 7 8
No!!!
-----------2 7 9
No!!!
-----------2 8 8
No!!!
-----------2 8 9
No!!!
-----------2 9 9
No!!!
-----------3 3 3
No!!!
-----------3 3 4
No!!!
-----------3 3 5
No!!!
-----------3 3 6
No!!!
-----------3 3 7
No!!!
-----------3 3 8
No!!!
-----------3 3 9
No!!!
-----------3 4 4
No!!!
-----------3 4 5
No!!!
-----------3 4 6
No!!!
-----------3 4 7
No!!!
-----------3 4 8
No!!!
-----------3 4 9
No!!!
-----------3 5 5
No!!!
-----------3 5 6
No!!!
-----------3 5 7
No!!!
-----------3 5 8
No!!!
-----------3 5 9
No!!!
-----------3 6 6
No!!!
-----------3 6 7
No!!!
-----------3 6 8
No!!!
-----------3 6 9
192 384 576
219 438 657
273 546 819
327 654 981
-----------3 7 7
No!!!
-----------3 7 8
213 497 568
321 749 856
-----------3 7 9
No!!!
-----------3 8 8
No!!!
-----------3 8 9
No!!!
-----------3 9 9
No!!!
-----------4 4 4
No!!!
-----------4 4 5
No!!!
-----------4 4 6
No!!!
-----------4 4 7
No!!!
-----------4 4 8
No!!!
-----------4 4 9
No!!!
-----------4 5 5
No!!!
-----------4 5 6
492 615 738
-----------4 5 7
No!!!
-----------4 5 8
No!!!
-----------4 5 9
No!!!
-----------4 6 6
No!!!
-----------4 6 7
No!!!
-----------4 6 8
No!!!
-----------4 6 9
No!!!
-----------4 7 7
No!!!
-----------4 7 8
No!!!
-----------4 7 9
No!!!
-----------4 8 8
No!!!
-----------4 8 9
No!!!
-----------4 9 9
No!!!
-----------5 5 5
No!!!
-----------5 5 6
No!!!
-----------5 5 7
No!!!
-----------5 5 8
No!!!
-----------5 5 9
No!!!
-----------5 6 6
No!!!
-----------5 6 7
No!!!
-----------5 6 8
No!!!
-----------5 6 9
No!!!
-----------5 7 7
No!!!
-----------5 7 8
No!!!
-----------5 7 9
No!!!
-----------5 8 8
No!!!
-----------5 8 9
No!!!
-----------5 9 9
No!!!
-----------6 6 6
No!!!
-----------6 6 7
No!!!
-----------6 6 8
No!!!
-----------6 6 9
No!!!
-----------6 7 7
No!!!
-----------6 7 8
No!!!
-----------6 7 9
No!!!
-----------6 8 8
No!!!
-----------6 8 9
No!!!
-----------6 9 9
No!!!
-----------7 7 7
No!!!
-----------7 7 8
No!!!
-----------7 7 9
No!!!
-----------7 8 8
No!!!
-----------7 8 9
No!!!
-----------7 9 9
No!!!
-----------8 8 8
No!!!
-----------8 8 9
No!!!
-----------8 9 9
No!!!
-----------9 9 9
No!!!

咳咳 我知道这玩意儿很长,所以我把答案提取了一下

下面上AC代码~~~~

//数据提交程序
#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
    int a,b,c,n=0;
    cin>>a>>b>>c;
    if(a==1&&b==2&&c==3||a==2&&b==4&&c==6||a==3&&b==6&&c==9)
    {n=1;
    printf("192 384 576\n219 438 657\n273 546 819\n327 654 981\n");
    }
    if(a==1&&b==3&&c==5)
    {
        n=1;printf("129 387 645");
    }
    if(a==3&&b==7&&c==8)
    {
        n=1;printf("213 497 568\n321 749 856");
    }
    if(a==4&&b==5&&c==6)
    {
        n=1;printf("492 615 738");
    }

    if(a==123&&b==456&&c==789)//一开始漏了这段
    {
        n=1;printf("123 456 789");
    }
    if(n==0)cout<<"No!!!";
 }


“if(a==123&&b==456&&c==789)”

一开始没有AC,就是差了这段代码。愉快地使用 下载输入数据大法。。真没想到还能这样。。溜了溜了

相关标签: 洛谷