http://mlz000.github.io/2015/07/15/srm-539/

250


Description:

从若干个盒子中随意选择几个装石头。每一个盒子容量都有上下限,一旦选择使用某个盒子,那么填装的石头数必须在该盒子的上下限容量之间。假设终于填装的石头总数为x。那么符合条件x>9000的x有多少个?

数据规模:盒子总数[1,15], 盒子容量[1,106]

Solution

盒子总数15非常easy想到枚举状态,把每一个的上下限存一下。排个序统计一下答案就可以。

Code

#include <bits/stdc++.h>
using namespace std;
#define pb push_back
#define mp make_pair
#define F first
#define S second
typedef long long LL;
typedef pair<int, int> pii;
const int M = 9000;
vector<pii> a;
class Over9000Rocks {
public:
int countPossibilities(vector <int> lowerBound, vector <int> upperBound) {
int n = lowerBound.size();
for (int i = 0; i < 1 << n; ++i) {
int l = 0, r = 0;
for (int j = 0; j < n; ++j) {
if (i >> j & 1) {
l += lowerBound[j];
r += upperBound[j];
}
}
l = max(l, M + 1);
if (l <= r) a.pb(mp(l, r));
}
sort(a.begin(), a.end());
int R = 0, ans = 0;
for (int i = 0; i < a.size(); ++i) {
if (a[i].F > R) ans += a[i].S - a[i].F + 1;
else if (a[i].S > R) ans += a[i].S - R;
R = max(R, a[i].S);
}
return ans;
}
};

550


Description

目大意:给定一张图。有T个点,如今有 n 个人要从0号点分别走到 1 ~ n 号点,每一个人都是沿着自己最短路径走(有多条最短路径则可随意选一条)。假设在到达终点之前。有个人单独行动,则觉得这个人是处在危急中的(仅仅有一个人经过某条边)。问n个人该怎么走使得处在危急中的人数最少。

Solution

能够想到,假设一个人的是安全的话那么他的最短路径一定能够被还有一个人全然覆盖,这样我们把相互能够覆盖的建个图。求匹配即是答案。

Code

#include <bits/stdc++.h>
using namespace std;
#define pb push_back
#define mp make_pair
#define F first
#define S second
typedef long long LL;
typedef pair<int, int> pii;
const int N = 55;
int d[N][N], f[N][N], l[N];
bool vis[N];
bool find(int u, int n) {
for (int i = 1; i <= n; ++i) {
if (f[u][i] && !vis[i]) {
vis[i] = 1;
if (!l[i] || find(l[i], n)) {
l[i] = u;
return 1;
}
}
}
return 0;
}
class SafeReturn {
public:
int minRisk(int T, vector <string> streets) {
int n = streets.size();
memset(d, 63, sizeof(d));
for (int i = 0; i < n; ++i)
for (int j = 0; j < n; ++j)
if (streets[i][j] != '-') d[i][j] = streets[i][j] - '0';
for (int i = 0; i < n; ++i) d[i][i] = 0;
for (int k = 0; k < n; ++k)
for (int i = 0; i < n; ++i)
for (int j = 0; j < n; ++j)
d[i][j] = min(d[i][j], d[i][k] + d[k][j]);
for (int i = 1; i <= T; ++i)
for (int j = 1; j <= T; ++j)
if (i != j && d[0][j] + d[j][i] == d[0][i]) f[i][j] = 1;
int ans = T;
for (int i = 1; i <= T; ++i) {
memset(vis, 0, sizeof(vis));
if (find(i, T)) --ans;
}
return ans;
}
};

srm 539的更多相关文章

  1. 记第一次TopCoder, 练习SRM 583 div2 250

    今天第一次做topcoder,没有比赛,所以找的最新一期的SRM练习,做了第一道题. 题目大意是说 给一个数字字符串,任意交换两位,使数字变为最小,不能有前导0. 看到题目以后,先想到的找规律,发现要 ...

  2. SRM 513 2 1000CutTheNumbers(状态压缩)

    SRM 513 2 1000CutTheNumbers Problem Statement Manao has a board filled with digits represented as St ...

  3. SRM 510 2 250TheAlmostLuckyNumbersDivTwo(数位dp)

    SRM 510 2 250TheAlmostLuckyNumbersDivTwo Problem Statement John and Brus believe that the digits 4 a ...

  4. SRM 657 DIV2

    -------一直想打SRM,但是感觉Topcoder用起来太麻烦了.题目还是英文,不过没什么事干还是来打一打好了.但是刚注册的号只能打DIV2,反正我这么弱也只适合DIV2了.. T1: 题目大意: ...

  5. SRM DIV1 500pt DP

    SRM 501 DIV1 500pt SRM 502 DIV1 500pt SRM 508 DIV1 500pt SRM 509 DIV1 500pt SRM 511 DIV1 500pt SRM 5 ...

  6. TC srm 673 300 div1

    TC srm.673 300 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 Description 给你n(n<=50)匹马和n个人,一匹马和一个人能 ...

  7. SRM 584 第一次玩TopCoder。。。只水题一道。。。

    第一次topcoder,以前老感觉没有资格去做tc,cf什么的,现在已经慢慢接触了. 感觉还可以,还是有让我们这些蒻菜安慰的水题. tc的确很好玩,用客户端比赛,还有各种规则,而且还是只编写一个类提交 ...

  8. SRM 616 ColorfulCoins

    题意:给定一个从小到大的货币面值,每一个面额都是其前面面额的倍数(倍数大于等于2),每一种货币面值对应一种颜色,目前不清楚面值与颜色的对应关系.要求用最少的查询次数来确定面额与颜色的对应关系.(一次查 ...

  9. SRM144 - SRM 148(少144-DIV1-LV3,147-DIV2-LV3)

    SRM 144 DIV 1 500pt tag:组合 题意:彩票中奖.给定n, m,从1-n中选择m个数组成数列a1, a2, a3...am.对于数列{am}分别满足以下条件的概率: (1)数列所有 ...

随机推荐

  1. WinRT ListView间隔变色(一)

    我们知道,在WPF里,MSDN提供了三种方法 1.使用转换器Converter 2.继承ListView类,自己处理 3.使用StyleSelctor 到了WinRT的世界了 1. Winrt中Set ...

  2. .ai域名注册已经极具投资价值进入火爆期

    最近G.ai以六位数的天价被国内域名收藏家收入囊中,间接说明了.ai域名的价值不断攀升,自从2016年AlphaGo胜利以来,人工智能几乎成为人人谈资,而由于.com域名被挖掘待尽,一些聪明的人工智能 ...

  3. HiveServer2后台运行

    nohup hive --service hiveserver2 & 或者直接: nohup hiveserver2 &

  4. GEO/SRA数据库

    GEO数据库 GEO数据库隶属于NCBI,是最大最全面的基因表达数据库,主要是芯片和转录组测序数据.除储存数据外,也提供一些数据挖掘工具,因此利用好这个数据库,没有实验,没有自己的数据也能发好文章! ...

  5. ViewData丶ViewBag和TempData

    案例: public ActionResult Index() { ViewData[; ViewData.Add(); ViewBag.myNum = ; TempData[; Student st ...

  6. python json格式和csv文件转换

    python json格式和csv文件转换 上代码 import csv import json ''' json格式示例 [{ "firstName":"Bill&qu ...

  7. iOS中NSAttributedString的使用--对关键字着色,以及处理html实例

    1,最近项目中用到了一个功能,一个很好的功能.就是用户在搜索的时候,搜索结果出来后对你输入的关键字进行红色标记.这样用户就很请楚的看到自己输入什么后会出现什么样子的结果.还有一个功能是,现在有一段文字 ...

  8. iview“官方“实现的右键菜单

    博客开篇,没想到第一篇博文竟然是前端的,虽略显尴尬,但正能量溢出,你我可能遇到同样问题,在这里分享下个人方案,希望对你有用. 官方目前不提供右键菜单,这里借助Dropdown(下拉菜单)来实现,故为“ ...

  9. 【2018百度之星资格赛】F 三原色图 - 最小生成树

    题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=6349 Knowledge Point: 最小生成树算法Prim&Kruskal Summari ...

  10. 洛谷——P1342 请柬

    P1342 请柬 题目描述 在电视时代,没有多少人观看戏剧表演.Malidinesia古董喜剧演员意识到这一事实,他们想宣传剧院,尤其是古色古香的喜剧片.他们已经打印请帖和所有必要的信息和计划.许多学 ...