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. '<', hexadecimal value 0x3C, is an invalid 问题解决

    你的web.config 里面一定有个节点的不完整,如 错误如下: 正确的如下:

  2. js创建节点,小试牛刀

    实现如下的功能 非常简单的一个小训练. 思想: 1.首先创建text和一个button 代码如下. <body> <input type="text" id=&q ...

  3. iOS逆向分析app

    适合有一定的逆向编程基础的人看. 背景:自动抢红包的脚本工具:cyscript,reveal,class-dump,越狱的pod等. 这里先上一张reveal的分析图: 小结:获取到了真个软件的整体结 ...

  4. Visual Studio 2013新建工程导入现有代码文件夹并且保持目录结构

    本文提供了一个在Windows环境下使用Visual Studio 2013编辑现有源代码并且保持目录结构的方法.本文使用VS2013中文社区版做示例(本版本为免费版,可在VS官网下载),其他版本的V ...

  5. 如何进行服务器的批量管理以及python 的paramiko的模块

    最近对公司的通道机账号进行改造管理,全面的更加深入的理解了公司账号管理的架构.(注:基本上所有的机器上的ssh不能使用,只有部分机器能够使用.为了安全的角度考虑,安装的不是公版的ssh,而都是定制版的 ...

  6. Reactjs 入门基础(一)

    实例中我们引入了三个库: react.min.js .react-dom.min.js 和 browser.min.js: 1,react.min.js -React 的 核心库 2,react-do ...

  7. maven自动部署到远程tomcat教程

    使用maven的自动部署功能可以很方便的将maven工程自动部署到远程tomcat服务器,节省了大量时间. 本文章适用于tomcat的7.x ,8.x, 9.x版本. 下面是自动部的步骤 1,首先,配 ...

  8. uniq,sort,

    语 法:uniq [-cdu][-f<栏位>][-s<字符位置>][-w<字符位置>][--help][--version][输入文件][输出文件]   补充说明: ...

  9. web测试特别点

    1.浏览器的后退按钮  提交表单一条已经成功提交的记录,back后再提交,看系统会如何处理.  检查多次使用back健的情况在有back的地方,back,回到原来的页面,再back,重复几次,看是否会 ...

  10. 获取Spring容器中的Bean

    摘要 SpringMVC框架开发中可能会在Filter或Servlet中用到spring容器中注册的java bean 对象,获得容器中的java bean对象有如下方法 Spring中的Applic ...