C:  最舒适的路线 (并查集)

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
#define INF 20000000 struct point
{
int x, y, v;
}; point node[];
int fa[]; bool cmp(point a, point b)
{
return a.v < b.v;//边从小到大
}
int find(int n)
{
return n == fa[n] ? n : fa[n] = find(fa[n]);
}
int gcd(int a, int b)
{
return b ? gcd(b, a%b) : a;
}
int main()
{
int i, j, t, e;
int start, end, row, edge, maxv, minv;
double radio;
cin>>t;
while(t--)
{
cin>>row>>edge;
for(i = ; i <= edge; i++)
{
cin>>node[i].x>>node[i].y>>node[i].v;
}
cin>>start>>end;
sort(node + , node+edge + , cmp);
radio = INF;
for(e = edge; e > ; e--) //从最大的边开始,将比它小的边加入
{
for(i =; i <= row; i++)
fa[i] = i;
for(i = e; i > ; i--)
{
int a = find(node[i].x);
int b = find(node[i].y);
if(a == b)
continue;
else
fa[a] = b;
if(find(start) == find(end))
break;//起点和终点在都一个集合里
}
if(i == )
break;//如果把边都加进去完了,说明起点和终点不连通
if(node[e].v/(node[i].v*1.0) < radio)
{
radio = node[e].v / (node[i].v * 1.0);
maxv = node[e].v;
minv = node[i].v;
}
}
int g = gcd(maxv, minv);
if(radio == INF)
printf("IMPOSSIBLE\n");
else if(maxv % minv == )
printf("%d\n", maxv / minv);
else
printf("%d/%d\n", maxv/g, minv/g);
}
return ;
}

D: 探 寻 宝 藏 (多线程dp)

#include <cstring>
#include <cstdio>
#include <cstdlib>
#include <algorithm>
using namespace std;
typedef unsigned long long LL; #define N 110
#define met(a,b) (memset(a,b,sizeof(a)))
#define max4(a,b,c,d) (max(max(a,b),max(c,d))) int a[N][N], dp[N*][N][N]; int main()
{
int n, m, T; scanf("%d", &T); while(T--)
{
int i, j, k; met(a, );
met(dp, ); scanf("%d%d", &n, &m); for(i=; i<=n; i++)
for(j=; j<=m; j++)
scanf("%d", &a[i][j]); dp[][][] = a[][];
for(k=; k<=n+m-; k++)
{
for(i=; i<=n; i++) ///i 代表第一个人所在的行
for(j=; j<=n; j++) ///j 代表第二个人所在的行
{
dp[k][i][j] = max4(dp[k-][i][j], dp[k-][i][j-], dp[k-][i-][j], dp[k-][i-][j-]);
if(i!=j)
dp[k][i][j] += a[i][k+-i] + a[j][k+-j];
else
dp[k][i][j] += a[i][k+-i];
}
} printf("%d\n", dp[n+m-][n][n]);
}
return ;
}

G:Adjacent Bit Counts (递推)

#include <cstring>
#include <cstdio>
#include <cstdlib>
#include <algorithm>
using namespace std;
typedef unsigned long long LL; #define N 110
#define met(a,b) (memset(a,b,sizeof(a)))
#define max4(a,b,c,d) (max(max(a,b),max(c,d))) LL dp[N][N][]; ///dp[i][j][0] i位数,fun[i]为j的最后一位为0
///dp[i][j][1] i位数,fun[i]为j的最后一位为1
///dp[i][j][1] dp[i][j][0]与dp[i][j][1]之和 int main()
{
int T, i, j; dp[][][] = dp[][][] = ;
dp[][][] = dp[][][] = ;
dp[][][] = ; for(i=; i<N; i++)
{
for(j=; j<i; j++)
{
dp[i][j][] = dp[i-][j][];
dp[i][j][] = dp[i-][j][];
if(j>=) dp[i][j][] += dp[i-][j-][];
dp[i][j][] = dp[i][j][] + dp[i][j][];
}
} scanf("%d", &T); while(T--)
{
int n, m; scanf("%d%d", &n, &m); printf("%lld\n", dp[n][m][]);
}
return ;
}

H: River Crossing ( 完全背包)

#include <cstring>
#include <cstdio>
#include <cstdlib>
#include <algorithm>
using namespace std;
typedef unsigned long long LL;
#define INF 0x3f3f3f3f
#define N 1100
#define met(a,b) (memset(a,b,sizeof(a)))
#define max4(a,b,c,d) (max(max(a,b),max(c,d))) int a[N], dp[N];
///dp[i]代表i个羊一起过河需要花费的最短时间 int main()
{
int T;
scanf("%d", &T);
while(T--)
{
int n, m, i, j; scanf("%d%d", &n, &m); for(i=; i<=n; i++)
scanf("%d", &a[i]); dp[] = a[] + m;
for(i=; i<=n; i++)
dp[i] = dp[i-]+a[i]; dp[] = ;
for(i=; i<=n; i++)
{
for(j=i; j<=n; j++)
{
dp[j] = min(dp[j], dp[j-i]+dp[i]+m);
}
} printf("%d\n", dp[n]);
}
return ;
}

河南省第六届ACM程序设计大赛的更多相关文章

  1. 河南省第七届ACM程序设计大赛赛后总结

    我们学校ACM集训开始于4月5号(清明节),5月25日在郑州解放军信息工程大学举办,集训耗时50天,但是感觉效果还行,但是也不是太好:我们也已经尽力了,虽然说只拿了个银牌,每份收获的背后,都会有辛勤的 ...

  2. 河南省第七届ACM程序设计大赛总结

    省赛总结 首先说说比赛时的情况吧,刚开始的时候我的任务就是翻译英文题目,找出比较水的题目,他们两个直接找中文水题切,其实每次比赛我们都是这样配合的,由于他们的判题系统一开始存在问题,交的正确的代码给判 ...

  3. 湖南省第六届大学生程序设计大赛原题 F Biggest Number (UVA1182)

    Biggest Number http://acm.hust.edu.cn/vjudge/contest/view.action?cid=30851#problem/F 解题思路:DFS(检索)+BF ...

  4. 福建工程学院第十四届ACM程序设计大赛 - E - 外传:小晋逃生记

    http://www.fjutacm.com/Contest.jsp?cid=705#P4 其实想清楚了就很简单,之前想了很多种方法,以为是二分什么的,看起来就像是一个单峰函数.但是发现直接暴力一波就 ...

  5. 2014嘉杰信息杯ACM/ICPC湖南程序设计邀请赛暨第六届湘潭市程序设计竞赛

    比赛链接: http://202.197.224.59/OnlineJudge2/index.php/Contest/problems/contest_id/36 题目来源: 2014嘉杰信息杯ACM ...

  6. 第13届 广东工业大学ACM程序设计大赛 C题 平分游戏

    第13届 广东工业大学ACM程序设计大赛 C题 平分游戏 题目描述 转眼间又过了一年,又有一届的师兄师姐要毕业了. ​ 有些师兄师姐就去了景驰科技实习. 在景驰,员工是他们最宝贵的财富.只有把每一个人 ...

  7. 西南科技大学第十一届ACM程序设计大赛发言稿

    西南科技大学第十一届ACM程序设计大赛发言稿 各位老师.志愿者及参赛选手: 大家好,我是来自计科学院卓软1301的哈特13,很荣幸今天能站在这里代表参赛选手发言. 回想起来,我参加ACM比赛已经快两年 ...

  8. nyoj 1238 最少换乘 (河南省第八届acm程序设计大赛)

    题目1238 题目信息 执行结果 本题排行 pid=1238" style="text-decoration:none; color:rgb(55,119,188)"&g ...

  9. nyoj 1239 引水project (河南省第八届acm程序设计大赛)

    题目1239 pid=1239" style="color:rgb(55,119,188)">题目信息 pid=1239" style="col ...

随机推荐

  1. Symfony2 资料篇

    http://www.chrisyue.com/symfony2-in-action-day-1.html 由于Symfony2现在还没有很完善的中文文档,所以不想看文档的同学可以直接进行点击上面的链 ...

  2. Oracle中获取当前时间半小时前的时间

    最近项目中有个要根据半个小时前的数据情况判断某一栏位的值,但是一直没想到怎样获取当前时间的半小时前的时间,今天突然想到可以通过sysdate做差来获取,比如sysdate-1这样的,刚开始没有对结果进 ...

  3. JQ怎么获取margin-left的值

    var margin =$("#Modules .list").css('marginLeft');

  4. PreparedStatement解决sql注入问题

    总结 PreparedStatement解决sql注入问题 :sql中使用?做占位符 2.得到PreparedStatement对象 PreparedStatement pst=conn.prepar ...

  5. 做一个高效的IOS开发工程师

    最近觉得自己的开发效率太慢了,总结了一下:熟练度不够是一方面,经常用到东西查看一下,积累问题?一方面,这个无法分享的.现在主要分享的是:如何高效的用好自己的时间. 1.善用xcode. xcode实在 ...

  6. Extract QQ from iPhone and analyze it

    QQ is one of the most popular chat App in the world. Now let me show you how to extract QQ from iPho ...

  7. druid的安装

    最近想玩druid.druid的底层是fastbit索引的列式存储.采用分布式的zookeeper调度.实时大数据分析软件.主要针对OLAP操作. 搭环境搭环境.druid的核心成员成立了一个叫imp ...

  8. 8.3 H5学习笔记

    隐藏域 <form action="" method="post" enctype="multipart/form-data"> ...

  9. sqlserver无法连接

    以下是我的检查信息及结果:1.telnet 192.168.1.100 1433 通过  telnet 116.3.15.198 1433 不通,提示“……无法打开连接,连接失败”的错误.2.通过端口 ...

  10. 现成的HTML5框架

    1>sencha-touch 2>phoneGap 3>jQuery mobile 4>bootstrap