#include <iostream>
 #include <cstring>
 #include <cstdio>
 #include <algorithm>
 #include <cmath>
 using namespace std;
  + ;
 struct points
 {
     double x,y;
 };
 points point[MAX];
 double d[MAX][MAX];
 double dist(int a, int b)
 {
     return sqrt( (point[a].x - point[b].x) * (point[a].x - point[b].x) + (point[a].y - point[b].y) * (point[a].y - point[b].y));
 }
 int main()
 {
     int n;
     while(scanf("%d", &n) != EOF)
     {
         ; i <= n; i++)
             scanf("%lf%lf", &point[i].x, &point[i].y);

         ; i < n - ; i++)
             d[n - ][i] = dist(n - , n) + dist(i, n);

         ; i > ; i--)
         {
             ; j < i; j++)
             {
                 ][j] + dist(i, i + ) - d[i + ][i] - dist(j, i + ) > 0.00001)
                     d[i][j] = d[i + ][j] + dist(i, i + );
                 else
                     d[i][j] = d[i + ][i] + dist(j, i + );
             }
         }
         printf(][] + dist(,));
     }

     ;
 }

UVA1347紫书dp

zoj1163http://blog.csdn.net/cherry_sun/article/details/6245208

 #include <iostream>
 #include <cstring>
 #include <algorithm>
 #include <map>
 #include <cstdio>
 using namespace std;
 map<string,int> color;
 ][],cnt[],sum[];
  + ];
 int main()
 {
     int n,m;
     while(scanf("%d%d", &n, &m) != EOF)
     {
          && m == )
             break;
         ];
         ; i <= n; i++)
         {
             scanf("%s", temp);
             color[temp] = i;
         }
         int x;

         memset(cnt, , sizeof(cnt));
         memset(sum, , sizeof(sum));
         memset(ans, , sizeof(ans));

         ; i <= m; i++)
         {
             scanf("%d%s",&x, temp);
             cloth[ color[temp] ][ cnt[ color[temp] ]++ ] = x;
         }
         ; i <= n; i++)
         {
             ; j < cnt[i]; j++)
             {
                 sum[i] += cloth[i][j];
             }
         }

         ;
         ; i <= n; i++)
         {
             ;
             ; j < cnt[i]; j++)
             {
                 for(int k = v; k >= cloth[i][j]; k--)
                 {
                     ans[k] = max(ans[k], ans[k - cloth[i][j]] + cloth[i][j]);
                 }
             }
             all += sum[i] - ans[v];
         }
         printf("%d\n",all);
     }

     ;
 }

UVA类似于8皇后问题

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
;
int g[MAX][MAX],vis[MAX][MAX*MAX];
int n,m,ans,t;
void dfs(int x,int cnt)
{
    ;
    for(int i = x; i < n; i++)
    {
        ; j < m; j++)
        {
            if(g[i][j])
            {
                ][j] ==  && vis[][i + j] ==  && vis[][i - j + t] == )
                {
                    flag = ;
                    break;
                }
            }
        }
        )
        {
            break;
        }
    }
    )
    {
        ans =min(ans,cnt);
        return ;
    }
    ; i < m; i++)
    {
        if(g[x][i])
        {
            ][i] ==  && vis[][x + i] ==  && vis[][x - i + t] == )
            {
                vis[][i] = vis[][x + i] = vis[][x - i + t] = ;
                dfs(x + , cnt + );
                vis[][i] = vis[][x + i] = vis[][x - i + t] = ;
            }
        }
    }
}
int main()
{
    ;
    while(scanf("%d", &n) != EOF)
    {
        )
            break;
        scanf("%d", &m);
        t = max(n,m);
        getchar();
        memset(vis,,sizeof(vis));
        memset(g,,sizeof(g));
        char ch;
        ; i < n; i++)
        {
            ; j < m; j++)
            {
                scanf("%c",&ch);
                if(ch == 'X')
                    g[i][j] = ;
            }
            getchar();
        }

        ans = ;
        dfs(,);
        printf("Case %d: %d\n",num++,ans);
    }
    ;
}

POJ 3026 Borg Maze

http://poj.org/problem?id=3026

 #include <iostream>
 #include <cstdio>
 #include <algorithm>
 #include <queue>
 #include <cstring>
 using namespace std;
 typedef pair<int,int> P;
 ;
 ][];
 ][],vis[][],dis[][],edge[][];
 int t,row,col,num;
 ][]={{,},{,},{,-},{-,} };
 void bfs(int x,int y)
 {
     queue<P> q;
     P point;
     point.first = x;
     point.second = y;
     memset(vis,,sizeof(vis));
     memset(dis,,sizeof(dis));
     vis[x][y] = ;
     q.push(point);
     while(q.size())
     {
         P temp;
         temp = q.front();
         q.pop();
         if( node[temp.first][temp.second] )
         {
             // cout<<node[x][y] <<" "<<node[point.first][point.second]<<endl;
             edge[ node[x][y] ][ node[temp.first][temp.second] ] = dis[temp.first][temp.second];
         }
         ; i < ; i++)
         {
             ];
             ];
              && fy >=  && fx < row && fy < col)
             {
                  && g[fx][fy] != '#')
                 {
                     dis[fx][fy] = dis[temp.first][temp.second] + ;
                     vis[fx][fy] = ;
                     point.first = fx;
                     point.second = fy;
                     q.push(point);
                 }
             }
         }
     }
 }
 void prime()
 {
     ];
     ];
     ; i < num; i++)
     {
         v[i] = false;
     }
     ; i < num; i++)
         s[i] = edge[][i];
     v[] = true;
     ;
     ; i < num; i++)
     {
         int pos, minn = INF;
         ; j < num; j++)
         {
             if(v[j] == false && s[j] < minn)
             {
                 minn = s[j];
                 pos = j;
             }
         }
         sum += minn;
         v[pos] = true;
         ; j < num; j++)
         {
             if(s[j] > edge[pos][j])
                 s[j] = edge[pos][j];
         }
     }
     printf("%d\n",sum);
 }
 int main()
 {
     scanf("%d", &t);
     while(t--)
     {
         scanf("%d%d", &col,&row);
         getchar();
         num = ;
         memset(node,,sizeof(node));
         memset(edge,,sizeof(edge));
         ; i < row; i ++)
         {
             ; j < col; j++)
             {
                 scanf("%c", &g[i][j]);
                 if(g[i][j] == 'A' || g[i][j] == 'S')
                     node[i][j] = num++;
             }
             getchar();
         }
         ; i < row; i++)
         {
             ; j < col; j++)
                 if(node[i][j])
                 bfs(i,j);
         }
         prime();
     }
     ;
 }

POJ2253

#include <iostream>
#include <cstring>
#include <cstdio>
#include <algorithm>
#include <cmath>

using namespace std;
 + ;
 << ;
struct Node
{
    int x,y;
};
Node point[MAX];
int N;
double path[MAX][MAX],dist[MAX],ans;
int vis[MAX];
void prime()
{
    memset(vis,,sizeof(vis));
    ; i <= N; i++)
    dist[i] = path[][i];
    vis[] = ;
    dist[] = ;
    ;
    ; i < N; i++)
    {
        double minn = INF;
        ; j <= N; j++)
        {
             && dist[j] < minn)
            {
                minn = dist[j];
                pos = j;
            }
        }
        vis[pos] = ;
        dist[pos] = minn;
        )
            return;
        if(ans < minn)
            ans = minn;
        ; j <= N; j++)
        {
            )
                dist[j] = dist[pos] + path[pos][j];
        }
    }
}
int main()
{
    ;
    while(scanf("%d", &N) != EOF && N)
    {
        ; i <= N; i++)
        {
            scanf("%d%d",&point[i].x,&point[i].y);
        }
        ; i <= N; i++)
        {
            ; j <= N; j++)
            {
                double x = point[i].x - point[j].x;
                double y = point[i].y - point[j].y;
                path[i][j] = sqrt(x * x + y * y);
            }
        }
        ans = ;
        prime();
        printf("Scenario #%d\n",++t);
        if(ans)
            printf("Frog Distance = %0.3lf\n",ans);
        else
             printf(][]);
        printf("\n");
    }
    ;
}

最新文章

  1. Work around by &quot; Due to heavy load, the latest workflow operation has been queued. &quot; 分类: Sharepoint 2015-07-08 00:19 3人阅读 评论(0) 收藏
  2. String类常用方法小节
  3. web页面实现指定区域打印功能
  4. PHP局部变量与全局变量
  5. WPF:窗体置顶
  6. redis的lua使用(EVALSHA)
  7. wifi reaver
  8. SQL列数据转换为字符串
  9. c# 循环语句练习题;
  10. ASP.NET 应用程序(Application)生命周期概述
  11. Android总结的基本机制监控事件
  12. Python3基础 list(enumerate()) 将一个列表的每一个元素转换成 带索引值的元组
  13. leetcode算法:Next Greater Element I
  14. HashMap?面试?我是谁?我在哪
  15. os模块(操作系统)
  16. STM32 USB-三个HID-interface 复合(组合)设备的代码实现-基于固件库(原创)
  17. VC6.0学习C语言入门SDK
  18. JAVA并发编程——守护线程(Daemon Thread)
  19. List&lt;T&gt;用法
  20. hdu 3068 Manacher算法

热门文章

  1. Centos7更改默认启动模式(转载)
  2. Linux常用命令大全
  3. iOS之在写一个iOS应用之前必须做的7件事(附相关资源)
  4. 【转】Android SDK Samples,学习Android的好方法
  5. [JAVA]定时任务之-Quartz使用篇
  6. css权重计算方法浅谈
  7. 关于docker在windows环境下运行的第一次体验
  8. 深入java集合学习2-ArrayList的实现原理
  9. S5PV210_时钟系统
  10. 解读ASP.NET 5 &amp; MVC6系列(13):TagHelper