这场比赛可以说是灰常的水了,涨信心场??

今下午义务劳动,去拿着锄头发了将近一小时呆,发现自己实在是干不了什么,就跑到实验室打比赛了~

之前的比赛补题补了这么久连一场完整的都没补完,结果这场比完后一小时连题解都出来了···

A-烤肉拌饭 ( uva 572)

就是求联通块的数量啊,刚学dfs的时候做的那种!

  1. #include <cstdio>
  2. #include <algorithm>
  3. #include <cstring>
  4. #include <iostream>
  5. #include <queue>
  6.  
  7. using namespace std;
  8. const int maxn=+;
  9. const int dx[]={,-,,-,,-,,};
  10. const int dy[]={,,,,-,-,,-};
  11. char G[maxn][maxn];
  12. int vis[maxn][maxn];
  13. int n,m;
  14. int ans;
  15. void dfs(int x,int y){
  16. vis[x][y]=;
  17. for(int i=;i<;i++){
  18. int nx=x+dx[i];
  19. int ny=y+dy[i];
  20. if(nx>=&&nx<=n&&ny>=&&ny<=m&&G[nx][ny]=='@'&&!vis[nx][ny]){
  21. dfs(nx,ny);
  22. }
  23. }
  24. return ;
  25. }
  26. int main(){
  27. while(scanf("%d%d",&n,&m)&&n&&m){
  28. memset(vis,,sizeof(vis));
  29. ans=;
  30. for(int i=;i<=n;i++){
  31. for(int j=;j<=m;j++){
  32. scanf(" %c",&G[i][j]);
  33. }
  34. }
  35. for(int i=;i<=n;i++){
  36. for(int j=;j<=m;j++){
  37. if(!vis[i][j]&&G[i][j]=='@'){
  38. ans++;
  39. dfs(i,j);
  40. }
  41. }
  42. }
  43. cout<<ans<<endl;
  44. }
  45. return ;
  46. }
 
 

B-麻辣香锅 HihoCoder - 1632

模拟,emmm模拟可以提高代码能力??

C-啵啵鱼 poj2387

是个很裸的最短路,一个spfa或者dijsktra就可以

  1. #include <cstdio>
  2. #include <algorithm>
  3. #include <cstring>
  4. #include <iostream>
  5. #include <queue>
  6.  
  7. using namespace std;
  8. const int maxn=+;
  9. const int maxm=+;
  10. const int INF=;
  11. typedef long long LL;
  12. int head[maxn],Next[maxm],to[maxm];
  13. LL val[maxm];
  14. int sz;
  15. int n,m;
  16. void add_edge(int a,int b,LL w){
  17. ++sz;
  18. val[sz]=w;
  19. to[sz]=b;
  20. Next[sz]=head[a];
  21. head[a]=sz;
  22. }
  23. LL d[maxn];
  24. int spfa(int s){
  25. for(int i=;i<=n;i++)d[i]=INF;
  26. int vis[maxn];
  27. memset(vis,,sizeof(vis));
  28. queue<int>q;
  29. q.push(s);
  30. vis[s]=;
  31. d[s]=;
  32. while(!q.empty()){
  33. int u=q.front();q.pop();vis[u]=;
  34. for(int i=head[u];i;i=Next[i]){
  35. int v=to[i];
  36. if(d[v]>d[u]+val[i]){
  37. d[v]=d[u]+val[i];
  38. if(!vis[v]){
  39. vis[v]=;
  40. q.push(v);
  41. }
  42. }
  43. }
  44. }
  45. return d[];
  46. }
  47. int main(){
  48. sz=;
  49. memset(head,,sizeof(head));
  50. scanf("%d%d",&m,&n);
  51. int a,b;LL c;
  52. for(int i=;i<=m;i++){
  53. scanf("%d %d%lld",&a,&b,&c);
  54. // cout<<a<<" "<<b<<" "<<c<<endl;
  55. add_edge(a,b,c);
  56. add_edge(b,a,c);
  57. }
  58. cout<<spfa(n);
  59. return ;
  60. }

D-海底捞 POJ2236

卢老师一句话点醒梦中人,直接并查集就可以~

  1. #include <cstdio>
  2. #include <algorithm>
  3. #include <iostream>
  4. #include <cstring>
  5. using namespace std;
  6. const int maxn=+;
  7. int n,d;
  8. int a,b;
  9. char c;
  10. int p[maxn],vis[maxn];
  11. struct Node{
  12. int x,y;
  13. }node[maxn];
  14. int find(int x){
  15. return p[x]==x?x:p[x]=find(p[x]);
  16. }
  17. bool dist(Node A,Node B){
  18. if((A.x-B.x)*(A.x-B.x)+(A.y-B.y)*(A.y-B.y)<=d*d)
  19. return true;
  20. return false;
  21. }
  22. int main(){
  23. scanf("%d%d",&n,&d);
  24. for(int i=;i<=n;i++){
  25. scanf("%d%d",&node[i].x,&node[i].y);
  26. }
  27. for(int i=;i<=n;i++)p[i]=i;
  28. while(scanf(" %c",&c)!=EOF){
  29. if(c=='O'){
  30. scanf("%d",&a);
  31. vis[a]=;
  32. for(int i=;i<=n;i++){
  33. if(vis[i]&&i!=a&&dist(node[a],node[i])){
  34. // cout<<a<<"-->"<<i<<endl;
  35. int x=find(a),y=find(i);
  36. if(x!=y)p[x]=y;
  37. }
  38. }
  39. }
  40. if(c=='S'){
  41. scanf("%d%d",&a,&b);
  42. int x=find(a),y=find(b);
  43. //cout<<":"<<x<<y<<endl;
  44. if(x==y){
  45. printf("SUCCESS\n");
  46. }else{
  47. printf("FAIL\n");
  48. }
  49. }
  50. }
  51. return ;
  52. }

E-黄焖鸡 uva10054

这个题以前做过,欧拉回路,注意打印的时候逆序输出

  1. #include <cstdio>
  2. #include <algorithm>
  3. #include <cstring>
  4. #include <iostream>
  5. #include <queue>
  6.  
  7. using namespace std;
  8. const int maxn=+;
  9.  
  10. int T;
  11. int G[maxn][maxn];
  12. int n;
  13. int deg[maxn];
  14. int a,b;
  15. int M;
  16. int p[maxn];
  17. int find(int x){
  18. return p[x]==x?x:find(p[x]);
  19. }
  20. void dfs(int u){
  21. for(int i=;i<=M;i++){
  22. if(G[u][i]){
  23. G[u][i]--;
  24. G[i][u]--;
  25. dfs(i);
  26. cout<<i<<" "<<u<<endl;
  27. }
  28. }
  29. return;
  30. }
  31. int main(){
  32. scanf("%d",&T);
  33. for(int t=;t<=T;t++){
  34. if(t!=)cout<<""<<endl;
  35. memset(G,,sizeof(G));
  36. memset(deg,,sizeof(deg));
  37. printf("Case #%d\n",t);
  38. M=-;
  39. scanf("%d",&n);
  40. for(int i=;i<=;i++)p[i]=i;
  41. for(int i=;i<=n;i++){
  42. scanf("%d%d",&a,&b);
  43. M=max(M,max(a,b));
  44. G[a][b]++;
  45. G[b][a]++;
  46. deg[a]++;
  47. deg[b]++;
  48. int x=find(a),y=find(b);
  49. if(x!=y)p[x]=y;
  50.  
  51. }
  52. bool judge=;
  53. for(int i=;i<=M;i++){
  54. if(deg[i]){
  55. if(find(i)!=find(M)||deg[i]%){
  56. judge=;
  57. break;
  58. }
  59. }
  60. }
  61. if(!judge){
  62. cout<<"some beads may be lost"<<endl;
  63. }else{
  64. for(int i=;i<=M;i++)
  65. dfs(i);
  66. }
  67.  
  68. }
  69. return ;
  70. }

F- 减肥成功指日可待 hdu2141

用set或者二分。但是set再G++下会MLE必须要选择C++才能AC,雾···

  1. #include <cstdio>
  2. #include <algorithm>
  3. #include <cstring>
  4. #include <iostream>
  5. #include <set>
  6. #include <vector>
  7. using namespace std;
  8. const int maxn=+;
  9. typedef long long LL;
  10. int A,B,C,s,x;
  11. LL a[maxn],b[maxn],c[maxn];
  12. int kase;
  13. int main(){
  14. while(scanf("%d%d%d",&A,&B,&C)!=EOF){
  15. kase++;
  16. set<LL>S;
  17. printf("Case %d:\n",kase);
  18. for(int i=;i<=A;i++){
  19. scanf("%lld",&a[i]);
  20. }
  21. for(int i=;i<=B;i++){
  22. scanf("%lld",&b[i]);
  23. }
  24. for(int i=;i<=C;i++){
  25. scanf("%lld",&c[i]);
  26. }
  27. for(int i=;i<=A;i++){
  28. for(int j=;j<=B;j++){
  29. //for(int l=1;l<=C;l++){
  30. LL X=a[i]+b[j];
  31. if(!S.count(X))
  32. S.insert(X);
  33. // }
  34. }
  35. }
  36. scanf("%d",&s);
  37. LL x;
  38. for(int i=;i<=s;i++){
  39. scanf("%lld",&x);
  40. bool ok=;
  41. for(int i=;i<=C;i++){
  42. LL pos=x-c[i];
  43. //if(pos<0)continue;
  44. if(S.count(pos)){
  45. ok=;
  46. break;
  47. }
  48. }
  49. //if(S.count(x))cout<<"YES"<<endl;
  50. if(ok)cout<<"YES"<<endl;
  51. else
  52. cout<<"NO"<<endl;
  53. }
  54. }
  55. return ;
  56. }

2018 Spring Single Training B (uva 572,HihoCoder 1632,POJ 2387,POJ 2236,UVA 10054,HDU 2141)的更多相关文章

  1. UVA 572 Oil Deposits油田(DFS求连通块)

    UVA 572     DFS(floodfill)  用DFS求连通块 Time Limit:1000MS     Memory Limit:65536KB     64bit IO Format: ...

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

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

  3. 我的spring cloud项目历程(2018.3~2018.9)

    前言 今天是9月17日,趁着山竹的临幸,得以在家里舒适的办公.项目从3月底开始,至今刚好半年.抽几十分钟,总结下半年的历程.对后面的项目,应该也有一点帮助吧. 学习前的七个问题 项目开始前,由于某些特 ...

  4. 2018 Multi-University Training Contest 10 CSGO(HDU - 6435)(最远曼哈顿距离)

    有 n 种主武器,m 种副武器.每种武器有一个基础分数k种属性值 X[i] . 选出一种主武器 mw 和一种副武器 sw,使得两种武器的分数和 + 每个属性的差值尽量大.(参考下面的式子) 多维的最远 ...

  5. Spring MVC 学习总结(二)——控制器定义与@RequestMapping详解

    一.控制器定义 控制器提供访问应用程序的行为,通常通过服务接口定义或注解定义两种方法实现. 控制器解析用户的请求并将其转换为一个模型.在Spring MVC中一个控制器可以包含多个Action(动作. ...

  6. Spring MVC 学习总结(一)——MVC概要与环境配置

    一.MVC概要 MVC是模型(Model).视图(View).控制器(Controller)的简写,是一种软件设计规范,用一种将业务逻辑.数据.显示分离的方法组织代码,MVC主要作用是降低了视图与业务 ...

  7. 2015年11月30日 spring初级知识讲解(一)装配Bean

    序,Spring的依赖注入是学习spring的基础.IOC为控制反转,意思是需要的时候就由spring生成一个,而不是先生成再使用. 写在前面 Spring提供面向接口编程,面向接口编程与依赖注入协作 ...

  8. Spring常见面试问题 (转)

    Spring 1. Spring工作机制及为什么要用?Spring 是一个开源框架,是为了解决企业应用程序开发复杂性而创建的.Spring既是一个AOP框架,也是一IOC容器.SpringFramew ...

  9. Spring MVC 学习总结(九)——Spring MVC实现RESTful与JSON(Spring MVC为前端提供服务)

    很多时候前端都需要调用后台服务实现交互功能,常见的数据交换格式多是JSON或XML,这里主要讲解Spring MVC为前端提供JSON格式的数据并实现与前台交互.RESTful则是一种软件架构风格.设 ...

随机推荐

  1. golang日期转字符串,仿照C#中的日期格式结构体

    1.日期格式集合.日期转字符串方法 package util import ( "strings" "time" ) //日期格式:模仿java中的结构体 ty ...

  2. I.MX6 AR8031 寄存器操作

    /*************************************************************************** * I.MX6 AR8031 寄存器操作 * ...

  3. HihoCoder 1104 : Suzhou Adventure(树形DP)

    Suzhou Adventure 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 Little Hi is taking an adventure in Suzhou n ...

  4. HihoCoder1620: 股票价格3 (单调队列 or DP)

    股票价格3 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi最近在关注股票,为了计算股票可能的盈利,他获取了一只股票最近N天的价格A1~AN. 小Hi想知道,对于第 ...

  5. 更新pip

    python -m pip install pip --upgrade pip要保持最新的,才可以去下载最新的其他的第三方包

  6. django的多对一,一对一,多对多关系

    from django.db import models class Publisher(models.Model): name = models.CharField(max_length=30) a ...

  7. windows调试本地启动的tomcat

    我们一般都通过Eclipse进行tomcat的本地调试,但有些特殊情况下需要直接本地启动tomcat(进入tomcat的bin目录下执行startup.bat),此时我们可以利用类似远程调试模式的方式 ...

  8. Linux LED字符设备驱动

    // 申请IO资源 int gpio_request(unsigned gpio, const char *label); // 释放IO资源 void gpio_free(unsigned gpio ...

  9. PHP 16 个编程法则

    HP是最好的编程语言.对于PHP开发者来说,掌握一些编程法则是十分重要的.而在PHP中,以双下划线(__)开头的方法称为魔术方法,它们扮演着非常重要的角色. 常用的魔术方法包括: -__constru ...

  10. ubuntu 环境变量配置

    1.vim /etc/environment 2.vim /etc/profile export JAVA_HOME=/opt/jdk1.6.0_45PATH=$JAVA_HOME/bin:/pub/ ...