hdu4858
来源:互联网 发布:旅行商问题的退火算法 编辑:程序博客网 时间:2024/06/15 19:49
这题的思路没什么好说的,反正我是暴力,但暴力中有需要注意的细节。我指的是白白,大神可以直接飞走。
首先看个map的。
<span style="font-size:18px;">#include<iostream>#include<vector>#include<map>using namespace std;map<int,int> mapp;int b[100001];int main(){int t;cin>>t;while(t--){mapp.clear();int n,m;cin>>n>>m;for(int i=0;i<=n;i++){b[i]=0;}int x,y;while(m--){cin>>x>>y;mapp[x]=y;mapp[y]=x;}int q,yy;int aa,bb;cin>>q;while(q--){cin>>yy;if(yy==0){cin>>aa>>bb;b[aa]+=bb;}else{cin>>aa;int sum=0;map<int,int>::iterator iter;iter=mapp.find(aa);for(int k=0;k!=mapp.count(aa);k++,iter++){sum+=b[iter->second];}cout<<sum<<endl;}}}return 0;}</span>真是超时没商量,所以,以后能暴力的题要注意了,不要懒,自己写才是真爱(貌似用map也没简单)。再看个vector的
<span style="font-size:18px;">#include<iostream>#include<vector>#include<cstdio>using namespace std;vector<int> a[100001];int b[100001];int main(){int t;int n,m;scanf("%d",&t);while(t--){scanf("%d%d",&n,&m);for(int i=0;i<=n;i++){b[i]=0;a[i].clear();}int x,y;while(m--){scanf("%d%d",&x,&y);a[x].push_back(y);a[y].push_back(x);}int q,yy,aa,bb;scanf("%d",&q);while(q--){scanf("%d",&yy);if(!yy){scanf("%d%d",&aa,&bb);b[aa]+=bb;}else{scanf("%d",&aa);int sum=0;for(int i=0;i!=a[aa].size();i++){sum+=b[a[aa][i]];}printf("%d\n",sum);}}}return 0;}</span>因为没看过vector和map的源码,暂时还不知道时间都费到哪了。其实最直接的想法是邻接表a[][]。没办法,这么大数据,果断溢出,这才想到了 vector。不管你信不信,把上面代码的输入输出改为cin和cout,果断还是超时。
0 0
- hdu4858
- hdu4858 项目管理
- HDU4858美素数
- hdu4858/BestCoderRound#1_1002
- 【暴力】HDU4858项目管理
- HDU4858 项目管理
- HDU4858-项目管理
- hdu4858 (2013杭州邀请赛)
- 分块法 hdu4858 项目管理
- HDU4858 项目管理【图论】【待】
- HDU4858 项目管理 (分块)
- hdu4858 项目管理 bestcoder round1 B
- 分块法 hdu4858 项目管理 1月5日
- 【简单枚举】HDU4858项目管理【BestCoder Round #1】
- 微软宣布.NET开发环境将开源 支持Mac OS X和Linux
- 找工作这几天感受
- HDOJ2524 矩形A + B
- Windows 7远程桌面登录时崩溃
- Linux 汇编语法和简单实例
- hdu4858
- 动作提供者(ActionProvider)在动作栏中的使用
- 设计模式C++实现(10)——桥接模式
- js原型
- I004-黑马程序员_毕向东_Java基础视频教程第01天-04-Java环境搭建(环境变量配置)
- C++中const用法浅析
- hdu3466
- Tesseract3.02训练生成新的识别语言库的详细步骤
- 黑马程序员——Java语言概述