【UVa10167】 Birthday Cake,思路+代码+解题报告

来源:互联网 发布:tiva数据库 编辑:程序博客网 时间:2024/06/05 16:05
#include <iostream>#include <cstring>#include <cstdlib>#include <cstdio>// #define INPUT/**    Problem: UVA10167 - Birthday Cake    Begin Time:22nd/Mar/2012 5:00 p.m.    End Time: 22nd/Mar/2012 7:35 p.m.    Last Time: 2H 35M    Thought:        就是根据题目中给的条件搜索        1.A,B∈[-500,500]        2.至少有一个解,输出其中之一就可以了    Experience:        这么简单的一道题,竟然WA了10次+,究其原因,就是审题不细 + 搜索功底不行        1.由于审题不细,有2n lines follow没看到,导致输入的时候只输入了N行,WAWAWA        2.由于审题不细,没看到给出了答案的范围,从而想得有些复杂,WAWAWA        3.搜索的时候一定要注意!!先搜索再判断解,在这道题里是这样的        如果你把判断解先放在前面,那么可能搜索到了下一个状态,但是你的解停留在        上一个状态,这时候你输出的i,j是现在的状态而不是上一个状态,导致WA,这个        问题是WA的最多次的,日日日。    Knowledge Point:    单纯的搜索,甚至归类不能归成BFS/DFS。*/using namespace std;const int MAX_CHERRY = 110000;struct node{    int x;    int y;};node cherry[MAX_CHERRY];void Solve(const int num){    int moreThan = 0;    int lessThan = 0;    for(int i = -500 ; i <= 500 ; i++)    {        for(int j = -500 ; j <= 500 ; j++)        {            moreThan = 0; lessThan = 0;            for(int k = 0 ; k < num ; k++)            {                if(cherry[k].x * i + cherry[k].y * j > 0)                {                    moreThan++;                }                if(cherry[k].x * i + cherry[k].y * j < 0 )                {                    lessThan++;                }                if(cherry[k].x * i + cherry[k].y * j == 0)                {                    break;                }                if(moreThan == lessThan && moreThan + lessThan == num)                {                    printf("%d %d\n",i,j);                    return;                }            }        }    }}int main(){#ifdef INPUT    freopen("b:\\acm\\uva\\UVA10167\\input.txt","r",stdin);#endif    int n;    int x,y,num;    while (scanf("%d",&n) != EOF )    {        if ( n == 0 ) break;        x = 0 ; y = 0 ; num = 0;        for(int i = 0 ; i < 2 * n ; i++)        {            scanf("%d %d",&cherry[i].x,&cherry[i].y);        }        Solve(2*n);    }    return 0;}
原创粉丝点击