Topcoder SRM584 DIV 2 500
#include <set>
#include <iostream>
#include <string>
#include <vector>
using namespace std;
class Egalitarianism
{
public:
void DFS(vector<string> &v,int p,char flag[])
{
int i,j;
for (i=;i<v.size();i++)
{
if (v[p][i]=='Y')
{
if (flag[i]==)
{
flag[i]=;
DFS(v,i,flag);
}
}
}
}
bool isLiantong(vector <string> v)
{
char flag[];
int i,j;
memset(flag,,);
flag[]=;
DFS(v,,flag);
for (i=;i<v.size();i++)
{
if (flag[i]==)
{
return false;
}
}
return true;
}
int dst[][];
void initdst(vector <string> &v)
{
int i,j;
for (i=;i<v.size();i++)
{
for (j=;j<v.size();j++)
{
if (i==j)
{
dst[i][i]=;
}
else if (v[i][j]=='Y')
{
dst[i][j]=;
}
else
{
dst[i][j]=;
}
}
}
}
int mindst(int n)
{
int i,j,k;
for (k=;k<n;k++)
{
for (i=;i<n;i++)
{
for (j=;j<n;j++)
{
if (dst[i][k]+dst[k][j]<dst[i][j])
{
dst[i][j]=dst[i][k]+dst[k][j];
}
}
}
}
int re=;
for (i=;i<n;i++)
{
for (j=;j<n;j++)
{
if (dst[i][j]>re&&dst[i][j]<)
{
re=dst[i][j];
}
}
}
return re;
}
int maxDifference(vector <string> isFriend, int d)
{
if (isLiantong(isFriend)==false)
{
return -;
}
if (d==)
{
return ;
}
initdst(isFriend);
return d*mindst(isFriend.size());
}
}; int main()
{
Egalitarianism sol;
vector<string> v;
v.push_back("NYYY");
v.push_back("YNYY");
v.push_back("YYNY");
v.push_back("YYYN"); cout<<sol.maxDifference(v,)<<endl;
}
Topcoder SRM584 DIV 2 500的更多相关文章
- TopCoder SRM 639 Div.2 500 AliceGameEasy
题意: 一个游戏有n轮,有A和B比赛,谁在第 i 轮得胜,就获得 i 分,给出x,y,问A得x分,B得y分有没有可能,如果有,输出A最少赢的盘数 解题思路: 首先判断n(n+1)/2 = (x+y)是 ...
- TopCoder SRM 639 Div.2 500 AliceGameEasy --乱搞
题意: 一个游戏有n轮,有A和B比赛,谁在第 i 轮得胜,就获得 i 分,给出x,y,问A得x分,B得y分有没有可能,如果有,输出A最少赢的盘数. 解法: 这题是我傻逼了,处理上各种不优越,要使n*( ...
- TopCoder SRM 633 Div.2 500 Jumping
题意:给一个点(x,y),给一些步长delta1,delta2...deltaN,问从(0,0)严格按照步长走完N步后能否正好到达(x,y)点. 解法:其实就是判断这些线段和(0,0)-(x,y)这条 ...
- TopCoder[SRM513 DIV 1]:PerfectMemory(500)
Problem Statement You might have played the game called Memoria. In this game, there is a board ...
- 求拓扑排序的数量,例题 topcoder srm 654 div2 500
周赛时遇到的一道比较有意思的题目: Problem Statement There are N rooms in Maki's new house. The rooms are number ...
- TopCoder[SRM513 DIV 1]:Reflections(1000)
Problem Statement Manao is playing a new game called Reflections. The goal of the game is trans ...
- Topcoder SRM583 DIV 2 250
#include <string> #include <iostream> using namespace std; class SwappingDigits { public ...
- Topcoder SRM 619 DIv2 500 --又是耻辱的一题
这题明明是一个简单的类似约瑟夫环的问题,但是由于细节问题迟迟不能得到正确结果,结果比赛完几分钟才改对..耻辱. 代码: #include <iostream> #include <c ...
- 【补解体报告】topcoder 634 DIV 2
A:应该是道语文题,注意边界就好: B:开始考虑的太复杂,没能够完全提取题目的思维. 但还是A了!我愚蠢的做法:二分答案加暴力枚举, 枚举的时候是完全模拟的,比如每次取得时候都是从大到小的去取,最后统 ...
随机推荐
- 【转】[退役]纪念我的ACM——headacher@XDU
转自:http://hi.baidu.com/headacher/item/5a2ce1d50609091b20e25022 退役了,是时候总结一下我ACM的生涯了.虽然很舍不得,但这段回忆很值得纪念 ...
- magento app开发遇到的问题及解决
今天一直在解决Magento的APP接口调用数据异常的问题,调用/api/rest/category/:id 这个接口的时候,返回的所有目录的数据是一样的,原始代码是这样的. 1)请求地址 /api/ ...
- [CrunchBang]tint2默认设置
#--------------------------------------------- # TINT2 CONFIG FILE #-------------------------------- ...
- SQL批量添加主键脚本
--SQL批量添加主键脚本 --操作提示:运行此脚本前请记得备份您要操作的数据库 --实现功能:执行脚本后数据库中的所有数据表都会有一个主键 --添加规则1:主键名称为ID(可自己修改),数据类型为整 ...
- C# 字符串string类型转换成DateTime类型 或者 string转换成DateTime?(字符串转换成可空日期类型)
在c#中,string类型转换成DateTime类型是经常用到的,作为基本的知识,这里在此做个小结.一般来说可以使用多种方法进行转换,最常用的就是使用Convert.ToDateTime(string ...
- 解决”不按住fun键输入的是数字,按着fun键才能输入字母”
原来联想的“FN+NUMLK“键组合,是进行数字和字符区域的切换的. 如果当前输入的是数字,说明当前处于数字模式,按一次“FN+NUMLK“键组合即可切换到字母模式.这样就能够正常地输入字母了.
- laravel框架总结(七) -- 数据库操作
1.使用DB门面进行基本操作 一旦你设置好了数据库连接,就可以使用 DB facade 来进行查找.DB facade 提供每个类型的查找方法:select.update.insert.delet ...
- 【leetcode❤python】 67. Add Binary
class Solution(object): def addBinary(self, a, b): """ :type a: str ...
- jQuery验证元素是否为空的两种常用方法
这篇文章主要介绍了jQuery验证元素是否为空的两种常用方法,实例分析了两种常用的判断为空技巧,非常具有实用价值,需要的朋友可以参考下 本文实例讲述了jQuery验证元素是否为空的两种常用方法.分享给 ...
- 大分享-hibernate,springmvc,easyui简要介绍
近期公司一直在做项目,主要用到了springMVC,eseayui,hibernate几大框架.近一个月的时间,个人就目前自我知识给予分享. 很多公司使用mybatis产品,综合所述其最大优点是全SQ ...