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. Oracle EBS Java Applet报错:找不到类

    Oracle EBS Home Page可以打开,但是无法打开EBS的Form,查看Java控制台,有错误报出. java控制台报错,如下: Java Plug-in 1.6.0_07 使用 JRE ...

  2. 关于listview的一些属性

    由于这两天在做listView的东西,所以整理出来一些我个人认为比较特别的属性,通过设置这样的属性可以做出更加美观的列表 首先是stackFromBottom属性,这只该属性之后你做好的列表就会显示你 ...

  3. WCF大文件传输

    WCF传输文件的时候可以设置每次文件的传输大小,如果是小文件的时候,可以很方便的将文件传递到服务端,但是如果文件比较大的话,就不可取了 遇到大文件的话可以采取分段传输的方式进行文件传输 思路: 1.客 ...

  4. web.xml的首页调用struts2的action解决方法

    1,首先在struts.xml里添加如下代码:注意位置 <constant name="struts.action.extension" value="do,act ...

  5. Mysql忘记用户密码的解决办法

    1.1 忘记用户密码的解决办法 普通用户,直接用root超级管理员登录进去修改密码就可以了,但是如果root密码丢失了,怎么办呢? 1.1.1 msyqld_saft方式找回密码 停止mysql:se ...

  6. Oracle SQL: TO_CHAR and TO_NUMBER 笔记

    (1)select TO_CHAR(123.56,'999.9') from dual; will return 123.6select TO_NUMBER('123.56','999.9') fro ...

  7. 快速升级php5.6

    !!yum list installed | grep phpcd /etc/yum.repos.drpm -Uvh https://mirror.webtatic.com/yum/el6/lates ...

  8. 编程范式 epesode7,8 stack存放指针类型and heap,register

    这一节从后往前写. ____stack and heap ___stack由 汇编语言操控管理,数据先入后出. 栈是存放局部变量,函数调用子函数时,该函数在栈中占用的空间会增大,用于存放子函数的局部变 ...

  9. arcgis desktop按ctrl键后地图乱移的解决办法

    习惯使用快捷键的,经常会按下ctrl. 但在arcmap中,按下ctrl后,地图乱移.分析发现变为鼠标导航状态,也就是鼠标偏离地图中心,地图就会往鼠标所在方向移动. 解决办法:1. 以前按下esc键, ...

  10. js模拟import方法导入外部文件

    function Import() { for( var i=0; i<arguments.length; i++ ) { var file = arguments; if ( file.mat ...