zoukankan      html  css  js  c++  java
  • 枚举

    1.生理周期

    题目链接:http://poj.org/problem?id=1006

    水题,直接枚举满足条件的日期。

    2.称硬币

    题目链接:http://poj.org/problem?id=1013

    一共12个硬币,每个硬币两种状态,我们枚举可能的假币,一共24种。

    3.完美立方Perfect Cubes

    题目链接:http://poj.org/problem?id=1543

    求满足等式a^3=b^3+c^3+d^3的所有可能的组合。水题。

    for(a=5;a<=n;a++)
    {
    for(b=2;b<n;b++)
    {

    if(m[a]<3*m[b])

    break;
    for(c=b;c<n;c++)
    {
    if(m[a]<m[b]+2*m[c])

    break;
    for(d=c;d<n;d++)
    {
    if(m[a]==(m[b]+m[c]+m[d]))

     printf("Cube = %d, Triple = (%d,%d,%d)\n",a,b,c,d);
    }
    }
    }
    }

    4.熄灯问题EXTENDED LIGHTS OUT

    题目链接:http://poj.org/problem?id=1222

    看到这个题目第一选择就是想bfs搜索需要按下的按钮,但是这个题目没说要最短步数,看的课本的解析,只需要枚举第一排按钮的按下与否状态,这样只要第一排确定了,由于必须让

    第一排得灯全灭,第二、三、四、五排得都确定了,我们只需要枚举所有的可能2^6个。

    5.The Troublesome Frog

    题目链接:http://poj.org/problem?id=1054

    题目让求出一条最长的路径,我们枚举所有可能的出发点pos1,pos2,然后check是否满足条件

    qsort(m,n,sizeof(node),cmp);
    for(i=0;i<n-2;i++)
    {
    for(j=i+1;j<n-1;j++)
    {
    int dx=m[j].x-m[i].x;
    int dy=m[j].y-m[i].y;
    int tx=m[i].x-dx;
    int ty=m[i].y-dy;
    if(tx>=1 && tx<=r && ty>=1 && ty<=c)//不是初始的两个点,因为tx,tx必须位于稻田外面,从这个点跳到m[i]点
    continue;
    if((m[i].x+result*dx)>r)//是否存在路径更长的可能
    break;
    if((m[i].y+result*dy)>c || (m[i].y+result*dy)<1)
    continue;
    tx=m[j].x+dx;
    ty=m[j].y+dy;
    int cnt=2;
    while(tx<=r && tx>=1 && ty>=1 && ty<= c)
    {
    if(!flag[tx][ty])
    {
    cnt=0;
    break;
    }
    cnt++;
    tx=tx+dx;
    ty=ty+dy;
    }
    if(cnt>result)
    result=cnt;
    }
    }

  • 相关阅读:
    12/21
    和寶寶在一起3/10
    11/23
    c#windows应用程序窗体间传值
    用OWC做统计图
    javascript 创建字典
    .NetCom双向数据交换的实现(RecordSet与.Net DataSet的转化)
    JScript 方法 indexOf 方法
    详尽解析window.event对象
    Window.Open详解
  • 原文地址:https://www.cnblogs.com/buptLizer/p/2169562.html
Copyright © 2011-2022 走看看