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. POS管理系统之供应商新增

    <%@ page language="java" import="java.util.*" pageEncoding="utf-8"% ...

  2. NOIP模拟赛-时间与空间之旅

    题目描述 公元22××年,宇宙中最普遍的交通工具是spaceship.spaceship的出现使得星系之间的联系变得更为紧密,所以spaceship船长也成了最热门的职业之一.当然,要成为一名出色的船 ...

  3. redis基础使用

    redis分linux,window两个版本分支. redis在window下的使用先下载相关包.下载地址:https://github.com/MSOpenTech/redis/releases 下 ...

  4. KMeans的图像压缩

    # -*- coding: utf-8 -*- """ Created on Thu Aug 11 18:54:12 2016 @author: Administrato ...

  5. Python 之Django

    1.安装Django(下载慢的时候用MaxVPN) pip3 install django 2.Django处理流程 新建project(mysite),执行dj(mysite),然后在console ...

  6. Nginx服务测试时的一些配置:wireshark、常用搜索URL格式、关闭防火墙、siege

    wrieshark sudo yum install wireshark-gnome sudo wireshar (以root启动,否则看不到网卡) 网站URL格式 以查询lumia为例 google ...

  7. phpunit.xml

    <phpunit bootstrap="vendor/autoload.php"> <testsuites> <testsuite name=&quo ...

  8. jQuery.bind() 函数详解

    bind()函数用于为每个匹配元素的一个或多个事件绑定事件处理函数. 此外,你还可以额外传递给事件处理函数一些所需的数据. 执行bind()时,事件处理函数会绑定到每个匹配元素上.因此你使用bind( ...

  9. mysql 索引分类

    在数据库表中,对字段建立索引可以大大提高查询速度.通过善用这些索引,可以令 MySQL的查询和运行更加高效.索引是快速搜索的关键.MySQL索引的建立对于MySQL的高效运行是很重要的.下面介绍几种常 ...

  10. hibernate学习(设计多对多 关系 映射)

    // package org.crazy.app.domain; import java.util.HashSet; import java.util.Set; import javax.persis ...