hdu 4858 项目管理

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4858

题意:中文不解释

解法:直接按题意模拟一遍,数据水?

代码:

#include<stdio.h>
#include<iostream>
#include<math.h>
#include<stdlib.h>
#include<ctype.h>
#include<algorithm>
#include<vector>
#include<string>
#include<queue>
#include<stack>
#include<set>
#include<map>
#include<string.h>

using namespace std;

int n, m, q;
vector<int> g[100010];
int a[100010], b, c, d;

int main()
{
    int t;
    scanf("%d",&t);
    while (t--)
    {
        scanf("%d%d",&n,&m);
        for (int i = 0; i <= n; i++) g[i].clear();
        memset(a, 0, sizeof(a));
        while (m--)
        {
            scanf("%d%d",&b,&c);
            g[b].push_back(c);
            g[c].push_back(b);
        }
        scanf("%d",&q);
        while (q--)
        {
            scanf("%d",&b);
            if (b == 0)
            {
                scanf("%d%d", &c, &d);
                a[c] += d;
            }
            else
            {
                int ans = 0;
                scanf("%d",&c);
                for (int i = 0; i < g[c].size(); i++)
                    ans += a[g[c][i]];
                printf("%d\n",ans);
            }
        }
    }
    return 0;
}

版权声明:转载请注明出处。

时间: 2024-11-16 17:56:39

hdu 4858 项目管理的相关文章

hdu 4858 项目管理(vector模拟)

# include <stdio.h> # include <algorithm> # include <string.h> # include <vector> # define N 100005 using namespace std; vector<int>g[N]; int node[N]; int slove(int x) { int sum=0,i; for(i=0;i<g[x].size();i++) { sum+=node[

HDU 4858 项目管理(邻接表 暴力模拟)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4858 我们建造了一个大项目!这个项目有n个节点,用很多边连接起来,并且这个项目是连通的! 两个节点间可能有多条边,不过一条边的两端必然是不同的节点.每个节点都有一个能量值. 现在我们要编写一个项目管理软件,这个软件呢有两个操作:1.给某个项目的能量值加上一个特定值.2.询问跟一个项目相邻的项目的能量值之和.(如果有多条边就算多次,比如a和b有2条边,那么询问a的时候b的权值算2次). 解题报告:这个

hdu 4858 项目管理 (图的分治)

项目管理 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 252    Accepted Submission(s): 88 Problem Description 我们建造了一个大项目!这个项目有n个节点,用很多边连接起来,并且这个项目是连通的! 两个节点间可能有多条边,不过一条边的两端必然是不同的节点. 每个节点都有一个能量值. 现

hdu 4858 项目管理 图分治 (复合算法)

hdu 4858 项目管理 题意:给n(<=100000)个点,m条边( <=n+10),可能有重边,每个点有个值val,初识为0. 2种操作. 操作1:点x的值,加addx. 操作2:输出x点的邻点的val和. 分析:简单的优化操作1或操作2是不行的. 法一:针对点的度将图中点分为两类点.对于度大于sqrt (n)的点为重点,对于小于等于sqrt(n)的点为轻点. 重点的个数小于sqrt(n)个.针对重点和轻点分别处理. 法二:也可考虑每个点,将其邻点分类.大于该点度的点分为一类,等于该点的

hdu 4858 项目管理 图的分块

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4858 我们建造了一个大项目!这个项目有n个节点,用很多边连接起来,并且这个项目是连通的!两个节点间可能有多条边,不过一条边的两端必然是不同的节点.每个节点都有一个能量值.现在我们要编写一个项目管理软件,这个软件呢有两个操作:1.给某个项目的能量值加上一个特定值.2.询问跟一个项目相邻的项目的能量值之和.(如果有多条边就算多次,比如a和b有2条边,那么询问a的时候b的权值算2次). Input 第一行

hdu 4858 项目管理(STL集装箱)

项目管理 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 730    Accepted Submission(s): 258 Problem Description 我们建造了一个大项目! 这个项目有n个节点,用非常多边连接起来.而且这个项目是连通的! 两个节点间可能有多条边,只是一条边的两端必定是不同的节点. 每一个节点都有一个能量

BestCoder Round #1 1002 项目管理 (HDU 4858)

项目管理 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 738    Accepted Submission(s): 260 Problem Description 我们建造了一个大项目!这个项目有n个节点,用很多边连接起来,并且这个项目是连通的!两个节点间可能有多条边,不过一条边的两端必然是不同的节点.每个节点都有一个能量值. 现在我

HDOJ 4858 项目管理

暴力... 项目管理 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 537    Accepted Submission(s): 189 Problem Description 我们建造了一个大项目!这个项目有n个节点,用很多边连接起来,并且这个项目是连通的! 两个节点间可能有多条边,不过一条边的两端必然是不同的节点. 每个节点都有一

hdu 4585 项目管理(vector运用)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4858 ---------------------------------------------------------------------------------------------------------------------------------------------------------- 欢迎光临天资小屋:http://user.qzone.qq.com/593830943