UVA 11748 - Rigging Elections

option=com_onlinejudge&Itemid=8&page=show_problem&category=599&problem=2848&mosmsg=Submission+received+with+ID+14103876" target="_blank" style="">题目链接

题意:n个人选举,给出m个人的投票人对于每一个人的优先级,如今你想让第c个人赢。问能不能

思路:对于两个人上场,假设a能赢b,就建一条a->b的边,然后问题事实上就变成是否能以c为根节点是一棵树,直接dfs一遍就可以

代码:

#include <cstdio>
#include <cstring>
#include <vector>
using namespace std; const int N = 105; int n, m, c, a[N][N], vis[N];
vector<int> g[N]; int dfs(int u) {
vis[u] = 1;
int ans = 1;
for (int i = 0; i < g[u].size(); i++) if (!vis[g[u][i]])
ans += dfs(g[u][i]);
return ans;
} int main() {
while (~scanf("%d%d%d", &n, &m, &c) && n) {
int u;
for (int i = 1; i <= n; i++)
g[i].clear();
for (int i = 1; i <= m; i++)
for (int j = 1; j <= n; j++) {
scanf("%d", &u);
a[i][u] = j;
}
for (int i = 1; i <= n; i++) {
for (int j = i + 1; j <= n; j++) {
int cnt = 0;
for (int k = 1; k <= m; k++) {
if (a[k][i] < a[k][j])
cnt++;
if (cnt > m / 2) break;
}
if (cnt > m / 2) g[i].push_back(j);
else g[j].push_back(i);
}
}
memset(vis, 0, sizeof(vis));
printf("%s\n", dfs(c) == n ? "yes" : "no");
}
return 0;
}

UVA 11748 - Rigging Elections(dfs)的更多相关文章

  1. UVA 572 -- Oil Deposits(DFS求连通块+种子填充算法)

    UVA 572 -- Oil Deposits(DFS求连通块) 图也有DFS和BFS遍历,由于DFS更好写,所以一般用DFS寻找连通块. 下述代码用一个二重循环来找到当前格子的相邻8个格子,也可用常 ...

  2. uva :10123 - No Tipping(dfs + 几何力矩 )

    option=com_onlinejudge&Itemid=8&page=show_problem&category=109&problem=1064&mosm ...

  3. UVA 10318 Security Panel(DFS剪枝 + 状压 + 思维)题解

    题意:给一个r*c的矩阵开关(初始全打开的),每次按下一个开关都会改变3*3范围内的有*的地方的状态,问你最少几步能让开关全闭上,按升序输出按哪些按钮 思路:每个按钮至多按一下,按按钮的顺序和结果无关 ...

  4. UVa 1343 旋转游戏(dfs+IDA*)

    https://vjudge.net/problem/UVA-1343 题意:如图所示,一共有8个1,8个2和8个3,如何以最少的移动来使得中间8个格子都为同一个数. 思路:状态空间搜索问题. 用ID ...

  5. UVa 11212 编辑书稿(dfs+IDA*)

    https://vjudge.net/problem/UVA-11212 题意:给出n个自然段组成的文章,将他们排列成1,2...,n.每次只能剪切一段连续的自然段,粘贴时按照顺序粘贴. 思路:状态空 ...

  6. uva 10160 Servicing Stations(DFS+剪枝)

    Servicing stations A company offers personal computers for sale in N towns (3 <= N <= 35). The ...

  7. Uva 1103 古代象形符号(dfs求连通块, floodfill, 进制转换)

    题意: 给定一个H行W列的字符矩阵(H<200, W < 50), 输入的是一个十六进制字符, 代表一行四个相邻的二进制, 1代表像素, 0代表没有像素. 然后要求判断输入的是以下哪些图形 ...

  8. UVA - 12113 Overlapping Squares(dfs+回溯)

    题目: 给定一个4*4的棋盘和棋盘上所呈现出来的纸张边缘,问用不超过6张2*2的纸能否摆出这样的形状. 思路: dfs纸的张数,每一张中枚举这张纸左上角这个点的位置,暴力解题就可以了. 这个题的覆盖太 ...

  9. UVA - 572 Oil Deposits(dfs)

    题意:求连通块个数. 分析:dfs. #include<cstdio> #include<cstring> #include<cstdlib> #include&l ...

随机推荐

  1. Activity随笔

    Activity的生命周期 1.正常情况下的生命周期 onCreate:  Activity正在被创建,生命周期中的第一个方法,常在此方法中做一些初始化工作,比如调用setContentView方法, ...

  2. vux+vuex+vue+Es6开发微信公众号的坑

    初次开发微信公众号遇到很多问题,可能是基础不怎么牢靠,最近几天一直在看vue的东西,现在就来慢慢介绍vux和vue这个骚东西的用法: 细看文档一步步来, npm install vux --save ...

  3. C#压缩文件夹至zip,不包含所选文件夹【转+修改】

    转自园友:jimcsharp的博文C#实现Zip压缩解压实例[转] 在此基础上,对其中的压缩文件夹方法略作修正,并增加是否对父文件夹进行压缩的方法.(因为笔者有只压缩文件夹下的所有文件,却不想将选中的 ...

  4. Pycharm 专业版安装

    1.Pycharm官网,网址:http://www.jetbrains.com/pycharm/download/#section=windows,下载PyCharm安装包,根据自己电脑的操作系统进行 ...

  5. Python 爬虫爬取今日头条街拍上的图片

    # 今日头条--街拍 import requests from urllib.parse import urlencode import os from hashlib import md5 from ...

  6. document.write() 和 document.writeln区别

    document.write() 和 document.writeln 都是JavaScript向客户端写入的方法,writeln是以行方式输出的,但并不是指页面实际效果中的换行,两种方法在查看源代码 ...

  7. JavaScript--小白入门篇1

    一.JavaScript简介 1.1 JavaScript的用途   JavaScript用来制作web页面交互效果,提升用户体验.    简单列出几个JavaScript能够制作的页面效果,它能干什 ...

  8. Luogu P3797 妖梦斩木棒

    解题思路 用线段树做这个就不用说了吧,但是要维护的东西确实很神奇.在每一个节点上都维护一个$lbkt$,表示这个区间上最靠左的右括号的位置:一个$rbkt$,表示这个区间上最靠右的左括号的位置.还有一 ...

  9. Java垃圾回收简介

    Java关键术语 JavaAPI:一系列帮助开发者创建Java应用程序的封装好的库. Java 开发工具包 (JDK):一系列工具帮助开发者创建Java应用程序.JDK包含工具编译.运行.打包.分发和 ...

  10. idea搭建maven项目 【转发】

    为了创建maven项目可是花了我时间了,网上的教程跟我的实际情况不符合,尤其是facets .artifacts 那块.幸亏找到这篇文章没解决了我的问题,他的描述跟我的情况一模一样.这篇文章竟然来自百 ...