• hdu 1015 Safecracker 解题报告


    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1015

    题目说是从一个字符串中找到5个数 v w x y z 给定target (子母中 A=1 ,B=2,C=3。。。Z=26)

    v - w^2 + x^3 - y^4 + z^5 = target
    题目中有一个要求:找到的vwxyz字符串按照字典序从大到小输出 又没看题 使用枚举的方法 5层循环 先对字符串从大到小排序 这样保证找到的第一个就是字典序最大的

    没有优化 5层循环直接过 简单的题因为没看懂题改了半天TT。。。哎 英语和理解能力急需加强。。。

    题目不难 代码如下:

     1 #include<iostream>
    2 #include<string>
    3 #include<cstring>
    4 #include<algorithm>
    5 using namespace std;
    6 char ans[6];
    7 bool cmp(const char &a,const char &b)
    8 {
    9 return a>=b;
    10 }
    11 bool find(int targat, char a[])
    12 {
    13 int i1,i2,i3,i4,i5;
    14 int m1,m2,m3,m4,m5;
    15 for(i1=0;i1<strlen(a);i1++)
    16 {
    17 for(i2=0;i2<strlen(a);i2++)
    18 {
    19 if(a[i2]==a[i1])
    20 continue;
    21 else
    22 {
    23 for(i3=0;i3<strlen(a);i3++)
    24 {
    25 if(a[i3]==a[i2] ||a[i3]==a[i1])
    26 continue;
    27 else
    28 {
    29 for(i4=0;i4<strlen(a);i4++)
    30 {
    31 if(a[i4]==a[i3]|| a[i4]==a[i2] ||a[i4]==a[i1])
    32 continue;
    33 else
    34 {
    35 for(i5=0;i5<strlen(a);i5++)
    36 {
    37 if(a[i5]==a[i4] || a[i5]==a[i4] ||a[i5]==a[i3]||a[i5]==a[i2] ||a[i5]==a[i1])
    38 continue;
    39 else
    40 {
    41 m1=a[i1]+1-'A';
    42 m2=a[i2]+1-'A';
    43 m3=a[i3]+1-'A';
    44 m4=a[i4]+1-'A';
    45 m5=a[i5]+1-'A';
    46 if(m1-m2*m2+m3*m3*m3-m4*m4*m4*m4+m5*m5*m5*m5*m5==targat)
    47 {
    48 ans[0]=a[i1];
    49 ans[1]=a[i2];
    50 ans[2]=a[i3];
    51 ans[3]=a[i4];
    52 ans[4]=a[i5];
    53 ans[5]='\0';
    54 return 1;
    55 }
    56 }
    57 }
    58 }
    59 }
    60 }
    61 }
    62 }
    63 }
    64
    65 }
    66 return 0;
    67 }
    68 int main()
    69 {
    70 int targat;
    71 int i1,i2,i3,i4,i5;
    72 ans[5]='\0';
    73
    74 char str[200];
    75 while(cin>>targat>>str)
    76 {
    77
    78 if(targat==0 )
    79 {
    80 if(strcmp(str,"END")==0)
    81 {
    82
    83 break;
    84 }
    85 }
    86 sort(str,str+strlen(str),cmp);
    87 if( find(targat,str))
    88 cout<<ans<<endl;
    89 else
    90 cout<<"no solution"<<endl;
    91
    92
    93 }
    94 //system("pause");
    95 return 0;
    96 }

  • 相关阅读:
    【转】PHP操作MongoDB【NoSQL】
    web前端响应式
    CSS Hack
    ES6特性
    zepto.js使用前注意
    移动端 isScroll自定义实现
    严格模式use strict
    node.js和express.js安装和使用步骤 [windows]
    JSONP理解和使用
    require.js+backbone.js基本使用
  • 原文地址:https://www.cnblogs.com/yujiaao/p/2164024.html
Copyright © 2020-2023  润新知