比赛时愣是没读懂

题意:有N 个城市 每一个城市都有 val 个 士兵 , 有几条路连接

当敌方攻击你的某个城市时 该城市以及与该城市相连接的城市的士兵总数 要大于 K

不大于 K 该城市就被攻陷。士兵被俘虏 则不能支援别的城市

求最后一共同拥有多少城市不被攻陷。以及士兵总数

思路:先计算该点能支援到的总士兵数

然后将  总数小于 K  的取出     减去相连的城市上的总士兵数

直到剩下的点都大于K

#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <string>
#include <iostream>
#include <algorithm>
#include <sstream>
#include <cmath>
using namespace std;
#include <queue>
#include <stack>
#include <vector>
#include <deque>
#include <set>
#include <map>
#include <time.h>;
#define cler(arr, val) memset(arr, val, sizeof(arr))
#define FOR(i,a,b) for(int i=a;i<=b;i++)
#define IN freopen ("in.txt" , "r" , stdin);
#define OUT freopen ("out.txt" , "w" , stdout);
typedef long long LL;
const int MAXN = 1032;
const int MAXM = 444;
const int INF = 0x3f3f3f3f;
const int mod = 1000000007;
vector<int>G[MAXN];
int val[MAXN],vis[MAXN],ans,num,orz[MAXN],man;
void init()
{
for(int i=0; i<MAXN; i++)
G[i].clear();
cler(val,0);
cler(vis,0);
}
int main()
{
int n,k;
//IN;
while(scanf("%d%d",&n,&k),n+k)
{
init();
for(int i=0; i<n; i++)
{
int a,m;
scanf("%d%d",&val[i],&m);
for(int j=0; j<m; j++)
{
scanf("%d",&a);
G[i].push_back(a);
}
}
for(int i=0; i<n; i++)
{
orz[i]=val[i];
for(int j=0; j<G[i].size(); j++)
orz[i]+=val[G[i][j]];
}
ans=0,num=0;
queue<int>q;
for(int i=0; i<n; i++)
if(orz[i]<k)
q.push(i),vis[i]=1;
while(!q.empty())
{
int i=q.front();
q.pop();
for(int j=0; j<G[i].size(); j++)
{
orz[G[i][j]]-=val[i];
if(orz[G[i][j]]<k&&!vis[G[i][j]])
q.push(G[i][j]),vis[G[i][j]]=1;
}
}
for(int i=0; i<n; i++)
if(!vis[i])
num++,ans+=val[i];
printf("%d %d\n",num,ans);
}
return 0;
}

【瞎搞】 HDU 3101 The Heart of the Country的更多相关文章

  1. HDU 4923 Room and Moor(瞎搞题)

    瞎搞题啊.找出1 1 0 0这样的序列,然后存起来,这样的情况下最好的选择是1的个数除以这段的总和. 然后从前向后扫一遍.变扫边进行合并.每次合并.合并的是他的前驱.这样到最后从t-1找出的那条链就是 ...

  2. URAL 1203. Scientific Conference(瞎搞)

    题目链接 本来觉得这不是经典的贪心吗..果断水一次,wa了,看了看discuss,发现貌似不好水,土土的DP了一下,复杂度很高了,又T了...然后想想单调队列,二分什么的...不好往上加,直接搞了标记 ...

  3. Codeforces Gym 100610 Problem H. Horrible Truth 瞎搞

    Problem H. Horrible Truth Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/gym/1006 ...

  4. B. Salty Fish Go! -期望题(瞎搞题)

    链接:https://www.nowcoder.com/acm/contest/104/B来源:牛客网 题意:A few days ago, WRD was playing a small game ...

  5. HDU5532 Almost Sorted Array(最长上升子序列 or 瞎搞个做差的数组)

    题目链接:点我 题意:给定一个序列,询问是否能删除一个数让它成为非递减或者非递增的序列. 比如说 删除后的序列是1 3 3 5 或者5 3 3 1 或者1 3 5 或者5 3 1 都可以.只要满足删掉 ...

  6. TOJ3097: 单词后缀 (字典树 or map瞎搞)

    传送门 (<---可以点击的~) 时间限制(普通/Java):1000MS/3000MS     内存限制:65536KByte 描述 有些英语单词后缀都是一样的,现在我们需要从给定的一堆单词里 ...

  7. [乱搞]hdu 6406 Taotao picks apples 笛卡尔树+倍增

    题目链接 Problem Description There is an apple tree in front of Taotao's house. When autumn comes, n app ...

  8. 8VC Venture Cup 2016 - Elimination Round B. Cards 瞎搞

    B. Cards 题目连接: http://www.codeforces.com/contest/626/problem/B Description Catherine has a deck of n ...

  9. ubuntu--基础环境瞎搞集合

    安装ubuntu系统后有很多东西需要自己瞎搞一下,这里把一些瞎搞的过程记录在这里,方便以后重新装系统后重新配置. 一.安装. 可以在windows下制作启动盘(软碟通),然后开机u盘启动即可安装,预留 ...

随机推荐

  1. pssh,pscp,pslurp使用实践

    因为常常须要到几十台机器上运行同样的命令,而眼下机器上还没有部署Saltstack或Puppet等集群化管理工具. 因为每台server上都使用同样的公钥,故之前都是写一些脚本:把IP 放到一个文件里 ...

  2. NodeJS会是昙花一现吗?

    在用了一年以后,我感觉node.js有一点不正确劲.它非常有意思,可是我认为我应该用另外一个视角去审视它. 网络编程真的能够更easy吗? node.js无疑有一些设计很好的地方.前段时间我写了一个性 ...

  3. <转载>div+css布局教程之div+css常见布局结构定义

    在使用div+css布局时,首先应该根据网页内容进行结构设计,仔细分析和规划你的页面结构,你可能得到类似这样的几块: 页面层容器.页面头部.标志和站点名称.站点导航(主菜单).主页面内容.子菜单.搜索 ...

  4. linux命令:echo

    echo $SHELL ----> /usr/bin/tcsh echo $ARBORDIR ----> /export/home/arbsfr/SFR_ENTREPRISE/SFRE3

  5. How to retreive raw post data from HttpServletRequest in java

    public static String getPostData(HttpServletRequest req) { StringBuilder sb = new StringBuilder(); t ...

  6. python 下载整个站点

    用python实现的下载整个站点工具. 核心流程非常easy: 1. 输入站点地址 2. url.得到响应的内容. 3. 依据响应的http报文头,假设类型为html, 则从第4步開始运行. 假设是其 ...

  7. Swift - 使用TableView的静态单元格进行页面布局

    通过使用静态单元格的列表,我们可以很方便的进行页面布局.下面通过一个“添加任务页面”来进行演示. 效果图如下: 实现步骤: 1,在storyboard中拖入一个TableViewController, ...

  8. awk 正则表达式

    awk 正则表达式.正则运算符详细介绍 前言:使用awk作为文本处理工具,正则表达式是少不了的. 要掌握这个工具的正则表达式使用.其实,我们不必单独去学习它的正则表达式.正则表达式就像一门程序语言,有 ...

  9. VC/MFC 使edit控件不能进行粘贴操作

    这里使用消息拦截的方法 BOOL PersonDlg::PreTranslateMessage(MSG* pMsg) { if (GetDlgItem(IDC_EDIT_USER_ID)->m_ ...

  10. Hide C# winform App Window When Started by Task Scheduler

    To make a Scheduled Task run in the background, change the User running the task to "SYSTEM&quo ...