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了!我愚蠢的做法:二分答案加暴力枚举, 枚举的时候是完全模拟的,比如每次取得时候都是从大到小的去取,最后统 ...
随机推荐
- 用JS来控制 div的高度随浏览器变化而变化
<div id="test" style=" border: solid 1px #f00; "></div> <script t ...
- C# 窗体(登录界面)
首先拖动一个 lable(写用户名) 后面 跟一个Textbox 再lable(写密码) 后面 跟一个Textbox(需设置一下属性—行为—useSystemPasswordChar(默认输入的密 ...
- C# 窗体
窗体的事件:删除事件:先将事件页面里面的挂好的事件删除,再删后台代码里面的事件 Panel是一个容器 1.Label -- 文本显示工具Text:显示的文字取值.赋值:lable1.Text 2.Te ...
- linux下svn服务器安装配置与启动
1. 采用源文件编译安装.源文件共两个,为: subversion-1.6.1.tar.gz (subversion 源文件) subversion-deps-1.6.1.tar.gz (subv ...
- Qt之界面实现技巧
一.主界面 1.窗口 最小化 最小化 关闭按钮 显示状态自定义 setWindowFlags(Qt::CustomireWindowHint); setWindowFlags(Qt::WindowCl ...
- iphone和ipad各控件大小
ipad和iphone是一样的:
- mysql出现“SELECT list is not in GROUP BY clause and contains nonaggregated column [duplicate]”错误提示
项目跨平台时由于mysql设置的问题,原代码运行出现这个错误,此时把mysql设置改下就好了 sql_mode='NO_ENGINE_SUBSTITUTION'
- apache svn subversion安装和配置(使用源码安装包方式)
环境:虚拟机下centos7 1.下载安装包:http://subversion.apache.org/download.cgi 2.上传到指定文件夹并解压 3.安装依赖包 apr apr-utils ...
- Thinkphp单字母快捷键
在ThinkPHP中有许多使用简便的单字母函数(即快捷方法),可以很方便开发者快速的调用,但是字母函数却不方便记忆,本文将所有的字母函数总结一下,以方便以后查找. 1.U() URL组装 支持不同UR ...
- C++提前delete
////////////////////////////////////// ///类析构以后,成员变量内存空间释放, ///函数 和 变量 还是可以引用的 ///////////////////// ...