杭电4858
来源:互联网 发布:手机arp扫描软件 编辑:程序博客网 时间:2024/06/07 01:48
这题采不采用分治法都是可以的,采用分治法就是效率高些,以空间换取时间。
直接暴力:
#include<iostream>#include <cstdio>#include <cmath>#include <cstring>#include <vector>#define maxn 100100using namespace std;vector<int>mapp[maxn];long long num[maxn];long long sum=0;int main(){int T,i,j,n,m,u,v,Q,a,b,c;scanf("%d",&T);while(T--){scanf("%d %d",&n,&m);for(i=1;i<=n;i++)mapp[i].clear(); //memset(sum,0,sizeof(sum));memset(num,0,sizeof(num));for(i=1;i<=m;i++){scanf("%d %d",&u,&v);mapp[u].push_back(v);mapp[v].push_back(u);}scanf("%d",&Q);for(j=1;j<=Q;j++){scanf("%d",&a);if(a==0){scanf("%d %d",&b,&c);num[b]+=c;}else {scanf("%d",&b);for(i=0;i<mapp[b].size();i++){sum+=num[mapp[b][i]];}cout<<sum<<endl;sum=0;}}}return 0; }
#include<iostream>#include <cstdio>#include <cmath>#include <cstring>#include <vector>#define maxn 100100using namespace std;vector<int>mapp[maxn];vector<int>heavy[maxn];int sum[maxn];int du[maxn];int num[maxn];int T,i,j,n,m,u,v,a,b,c,Q;void Scan(){scanf("%d%d",&n,&m);memset(du,0,sizeof(du));for(i=1;i<=n;i++){mapp[i].clear();heavy[i].clear();}for(i=1;i<=m;i++){scanf("%d%d",&u,&v);mapp[u].push_back(v);mapp[v].push_back(u);du[u]++;du[v]++;}for(i=1;i<=n;i++){for(j=0;j<mapp[i].size();j++){int k=mapp[i][j];if(du[k]>sqrt(n)){heavy[i].push_back(k); }}}}void Question(){memset(num,0,sizeof(num));memset(sum,0,sizeof(sum));scanf("%d",&Q);for(i=1;i<=Q;i++){scanf("%d",&a);if(a==0){scanf("%d%d",&b,&c);num[b]+=c;for(j=0;j<heavy[b].size();j++){sum[heavy[b][j]]+=c;}}else {scanf("%d",&b);if(du[b]>sqrt(n))printf("%d\n",sum[b]);else {int all=0;for(j=0;j<mapp[b].size();j++){all+=num[mapp[b][j]];}cout<<all<<endl;}}}}int main(){scanf("%d",&T);while(T--){Scan();Question();}return 0;}
0 0
- 杭电4858
- 杭电
- 杭电
- 杭电
- 杭电 1234 和 杭电 2115
- 杭电2056之Rectangles 杭电
- 杭电ACM1061Rightmost Digit
- 杭电2099 7.11
- 杭电ACM 1003
- 杭电 ACM 2016
- 杭电ACM1466
- 杭电ACM1003
- 杭电ACM1225
- 杭电ACM2023
- 杭电ACM2602
- 杭电ACM2955
- 杭电ACM3198
- 杭电ACM2028 求教
- 编程语言面试常用题
- 二元谓词的重载2
- java 对xml文件进行 增删改查
- 求逆元偷懒方法
- 永远不要打探别人工资
- 杭电4858
- 第四周项目5.4—编制递归函数返回第n个Fibnacci数
- POJ 1017 Packets (贪心)
- LightOj 1231 Coin Change (II)(完全背包)
- Alcatraz
- 二路归并排序
- JAVA实现网络爬虫
- leetcode118 & 119. [Array]Pascal's Triangle
- 第三周 项目4 (2)换分币