首页 > 其他 > 详细

紫书第7章 暴力求解法

时间:2016-03-06 11:18:49      阅读:209      评论:0      收藏:0      [点我收藏+]

例题7-1 除法(Division, UVa 725)

一定要注意数组初始化的位置

#include <iostream>
#include <string>
#include <cstring>
#include <cstdlib>
#include <cstdio>
#include <cmath>
#include <algorithm>
#include <stack>
#include <queue>
#include <cctype>
#include <vector>
#include <iterator>
#include <set>
#include <map>
#include <sstream>
using namespace std;

#define mem(a,b) memset(a,b,sizeof(a))
#define pf printf
#define sf scanf
#define spf sprintf
#define pb push_back
#define debug printf("!\n")
#define INF 10000
#define MAXN 5010
#define MAX(a,b) a>b?a:b
#define blank pf("\n")
#define LL long long
#define ALL(x) x.begin(),x.end()
#define INS(x) inserter(x,x.begin())
#define pqueue priority_queue

char buf[6];
int used[10];

bool check(char* a)
{
     mem(used,0);
     for(int i =0;i<10;i++)
     {
          used[a[i]-0]=1;
     }
     for(int i = 0;i<10;i++)
     {
          if(!used[i]) return false;
     }
     return true;
}

int main()
{
     int n,i,j,kase=0;
     while(sf("%d",&n)==1 && n)
     {
          int ok=0;
          if(kase++)
               blank;
          for(i=1;i<=98765;i++)
          {
               spf(buf,"%05d%05d",i*n,i);
               int len = strlen(buf);
               if(len>10) break;
               if(check(buf))
               {
                    pf("%05d / %05d = %d\n",i*n,i,n);
                    ok = 1;
               }
          }
          if(!ok)
               pf("There are no solutions for %d.\n",n);
     }
}

 

例题7-2 最大乘积(Maximum Product, UVa 11059)

#include <iostream>
#include <string>
#include <cstring>
#include <cstdlib>
#include <cstdio>
#include <cmath>
#include <algorithm>
#include <stack>
#include <queue>
#include <cctype>
#include <vector>
#include <iterator>
#include <set>
#include <map>
#include <sstream>
using namespace std;

#define mem(a,b) memset(a,b,sizeof(a))
#define pf printf
#define sf scanf
#define spf sprintf
#define pb push_back
#define debug printf("!\n")
#define INF 10000
#define MAXN 5010
#define MAX(a,b) a>b?a:b
#define blank pf("\n")
#define LL long long
#define ALL(x) x.begin(),x.end()
#define INS(x) inserter(x,x.begin())
#define pqueue priority_queue

int buf[20];

int main()
{
     int n,i,j,kase=0,cnt=1;
     while(sf("%d",&n)==1)
     {
          for(i=0;i<n;i++)
          {
               sf("%d",&buf[i]);
          }
          if(kase++) blank;

          long long ma = 0;
          for(i=0;i<n;i++)
          {
               long long res = 1;
               for(j=i;j<n;j++)
               {
                    res*=buf[j];
                    if(res>ma)
                         ma = res;
               }
          }
          pf("Case #%d: The maximum product is %I64d.\n",cnt++,ma);
     }
}

 

例题7-3 分数拆分(Fractions Again?!, UVa 10976)

尽量用余数%判断一个double是否是整数

#include <iostream>
#include <string>
#include <cstring>
#include <cstdlib>
#include <cstdio>
#include <cmath>
#include <algorithm>
#include <stack>
#include <queue>
#include <cctype>
#include <vector>
#include <iterator>
#include <set>
#include <map>
#include <sstream>
using namespace std;

#define mem(a,b) memset(a,b,sizeof(a))
#define pf printf
#define sf scanf
#define spf sprintf
#define pb push_back
#define debug printf("!\n")
#define INF 10000
#define MAXN 5010
#define MAX(a,b) a>b?a:b
#define blank pf("\n")
#define LL long long
#define ALL(x) x.begin(),x.end()
#define INS(x) inserter(x,x.begin())
#define pqueue priority_queue

int x[10011],y[10011];

int main()
{
     int n,i,j,kase=0;
     while(sf("%d",&n)==1)
     {
          int v=0,cnt=0;
          mem(x,0);
          mem(y,0);
          for(i=n+1;i<=2*n;i++)
          {
               if(i*n % (i-n)==0)
               {
                    x[v]=i*n/(i-n);
                    y[v++]=i;
               }

          }
          pf("%d\n",v);
          for(i = 0;i<v;i++)
               pf("1/%d = 1/%d + 1/%d\n",n,x[i],y[i]);
     }
}

 

紫书第7章 暴力求解法

原文:http://www.cnblogs.com/qlky/p/5246653.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!