一. http://vjudge.net/problem/26084/origin
题意:一个格子矩阵,有路有墙,给起点,问能走到的格子有多少。
数据范围:20*20
解题:DFS,填湖标记

#include<stdio.h>
#include<string.h>
char b[30][30];
int cnt;
int n,m;
void dfs(int x,int y)
{if(x<0||x>=n||y<0||y>=m) return;if(b[x][y]!='#'){cnt++;b[x][y]='#';dfs(x+1,y);dfs(x-1,y);dfs(x,y+1);dfs(x,y-1);}
}
int main()
{while(scanf("%d%d",&m,&n)&&(n||m)){getchar();memset(b,0,sizeof(b));int x,y;cnt=0;for(int i=0;i<n;i++)gets(b[i]);//for(int i=0;i<n;i++)puts(b[i]);for(int i=0;i<n;i++)for(int j=0;j<m;j++)if(b[i][j]=='@'){x=i,y=j;break;}dfs(x,y);printf("%d\n",cnt);}return 0;
}

二. http://vjudge.net/problem/12685/origin
题意:第一象限,整数坐标背景;M个炸弹,分别在时间Ti于(Xi,Yi)爆炸,周围四块一并炸毁。人在原点,问最少几步跑到安全地点,跑不到输出-1。
数据范围:M【1,50000】、 Xi,Yi【0,300】、Ti【0,1000】
解题:预处理出安全地区a[][] 和必要的炸弹(时间排序,重复炸的滤掉),BFS按时间先出队炸弹后人。
注意:c[][]标记出过队的地点,b[][]标记能走的,省略c[][]会超时。

#include<stdio.h>
#include<string.h>
#include<algorithm>
#include<queue>
using namespace std;int a[430][430];
int b[430][430];
int c[430][430];
int fx[4][2]={{1,0},{-1,0},{0,1},{0,-1}};
struct fg
{int time;int x,y;
}m[60050];
int num,t,p;queue<fg> q;int cmp(fg X,fg Y)
{return X.time<Y.time;
}int main()
{int M;int x,y,tt;while(scanf("%d",&M)!=EOF){while(!q.empty())q.pop();memset(a,0,sizeof(a));memset(b,0,sizeof(b));memset(c,0,sizeof(c));for(int i=0;i<M;i++)scanf("%d%d%d",&m[i].x,&m[i].y,&m[i].time);sort(m,m+M,cmp);//for(int i=0;i<M;i++)printf("%d \n",m[i].time);num=0;for(int i=0;i<M;i++){x=m[i].x,y=m[i].y,tt=m[i].time;if(a[x][y]&&a[x+1][y]&&a[x-1][y]&&a[x][y+1]&&a[x][y-1])continue;a[x][y]=1;for(int i=0;i<4;i++){if((x+fx[i][0])<0||(x+fx[i][0])>400||(y+fx[i][1])<0||(y+fx[i][1])>400)continue;a[x+fx[i][0]][y+fx[i][1]]=1;}m[num].x=x,m[num].y=y,m[num++].time=tt;}fg gg;int ans=-1;p=0;gg.x=gg.y=gg.time=0;q.push(gg);while(!q.empty()){gg=q.front();q.pop();x=gg.x,y=gg.y,tt=gg.time;//  printf("\n%d %d %d\n",x,y,tt);if(!a[x][y]){ans=tt;break;}if(c[x][y])continue;/c[x][y]=b[x][y]=1;for(;p<num&&m[p].time<=tt+1;p++)b[m[p].x][m[p].y]=b[(m[p].x)+1][m[p].y]=b[(m[p].x)-1][m[p].y]=b[m[p].x][(m[p].y)+1]=b[m[p].x][(m[p].y)-1]=1;for(int i=0;i<4;i++){if((x+fx[i][0])<0||(x+fx[i][0])>400||(y+fx[i][1])<0||(y+fx[i][1])>400)continue;if(b[x+fx[i][0]][y+fx[i][1]])continue;gg.x=x+fx[i][0],gg.y=y+fx[i][1],gg.time=tt+1;q.push(gg);}}printf("%d\n",ans);}return 0;
}

三. http://vjudge.net/problem/17170/origin
题意:n个不重复个位数,递增的顺序输入;问拼成两个整数,俩数差的绝对值最小是多少,多位数不能以0开头。
数据范围:n【1,10】
解题:2和10特判,剩下9!全排列对称截。
注意:1.用do while(); 2.多位数不能以0开头

#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
int a[15];
int ans;
int main()
{int T;char ss[30];while(scanf("%d",&T)!=EOF){gets(ss);while(T--){int n=0;int x,y,zz;ans=99999999;gets(ss);for(int i=0;ss[i]!='\0';i++)if(ss[i]>='0'&&ss[i]<='9')a[n++]=ss[i]-'0';if(n==2)ans=a[1]-a[0];else if(n==10)ans=247;else{do{//     printf("\n");//     for(int i=0;i<n;i++)printf("%d ",a[i]);if(a[n/2]==0||a[0]==0)continue;///           x=0;for(int i=0;i<n/2;i++){x*=10;x+=a[i];}y=0;for(int i=n/2;i<n;i++){y*=10;y+=a[i];}zz=x>y?x-y:y-x;//printf("y:%d\n",y);if(ans>zz)ans=zz;}while(next_permutation(a,a+n));}printf("%d\n",ans);}}return 0;
}

四. http://vjudge.net/problem/39458/origin
题意:n个数(1,2,3……n)以位置顺序排列,往下n-1行为上行两两相加,最后剩余一个数字s,给出n,s求这n个数的最初排列。
数据范围:n【1,10】
解题:预处理一个杨辉三角的表,全排列乘乘加加。

#include<stdio.h>
#include<algorithm>
using namespace std;
int a[15][15];
int b[15];
int main()
{int n;long long sum;for(int i=1;i<=10;i++){a[i][1]=a[i][i]=1;for(int j=2;j<=i-1;j++)a[i][j]=a[i-1][j]+a[i-1][j-1];}long long ssum;while(scanf("%d%I64d",&n,&sum)!=EOF){for(int i=0;i<n;i++)b[i]=i+1;do{ssum=0;for(int i=0;i<n;i++)ssum+=(b[i]*a[n][i+1]);if(ssum==sum)break;}while(next_permutation(b,b+n));for(int i=0;i<n;i++)printf("%d ",b[i]);printf("\n");}return 0;
}

五. http://vjudge.net/problem/12306/origin
题意:5*5格子存放个位数,问连通情况下(四方象),能组成多少个不同的六位数,前导零不忽略。
解题:裸DFS没剪枝,c[]标记六位数,b[][]标记边界。

#include<stdio.h>
#include<string.h>
int a[10][10];
int b[10][10];
int c[1000000];
int fz[4][2]={{-1,0},{1,0},{0,-1},{0,1}};
int ans;
void dfs(int h,int l,int cc,int sum)
{if(cc>6||sum>999999)return;
//    printf("%d %d %d %d\n",h,l,cc,sum);if(cc==6){if(c[sum]==0){c[sum]=1;ans++;}//printf("sssssssssss%d\n",sum);}else{for(int i=0;i<4;i++){if(!b[h+fz[i][0]][l+fz[i][1]]){sum*=10;sum+=a[h+fz[i][0]][l+fz[i][1]];dfs(h+fz[i][0],l+fz[i][1],cc+1,sum);sum/=10;}}}
}
int main()
{for(int i=0;i<7;i++)b[0][i]=b[6][i]=b[i][0]=b[i][6]=1;while(scanf("%d",&a[1][1])!=EOF){for(int i=1;i<6;i++)for(int j=1;j<6;j++){if(i==1&&j==1)continue;scanf("%d",&a[i][j]);}
//        memset(b,0,sizeof(b));memset(c,0,sizeof(c));ans=0;for(int i=1;i<6;i++)for(int j=1;j<6;j++)dfs(i,j,0,0);printf("%d\n",ans);}return 0;
}

【yiyi挑战】2.1搜索相关推荐

  1. 深度学习核心技术精讲100篇(三十一)-大众点评搜索基于知识图谱的深度学习排序实践

    1. 引言 挑战与思路 搜索是大众点评App上用户进行信息查找的最大入口,是连接用户和信息的重要纽带.而用户搜索的方式和场景非常多样,并且由于对接业务种类多,流量差异大,为大众点评搜索(下文简称点评搜 ...

  2. “衣+”挑战百度 图像识别搜索引擎

     "衣+"挑战百度 图像识别搜索引擎       2014年9月29日 13:24  手机之家     在大街小巷人们无不热衷于对时尚服饰的追逐,但在看到自己喜欢的服饰时又束手 ...

  3. 好消息acesse_真实的acesse爱搜索 黑心传销骗子

    , 到现在我都没弄懂他是怎么算的 , 不管是周末还是平常工作时间 , 一个 星期总有几天是没有这 6 美元的 , 可能只有不到 1 美元的收入 , 当时我也没在意 , 反正只要累计 6 个月每天 6 ...

  4. 使用Elasticsearch 构建 .NET 企业级搜索

    最近几年出现的云计算为组织和用户带来了福音.组织对客户的了解达到前所未有的透彻,并能够采用个性化通信锁定客户.用户几乎可以随时随地获取其数据,使其更加易于访问和使用.为了存储所有这些数据,大型数据中心 ...

  5. 创建react应用程序_通过构建电影搜索应用程序在1小时内了解React

    创建react应用程序 If you've been meaning to learn React but are unsure of where to start, Scrimba's brand ...

  6. 专心做搜索也能登顶CLUE分类榜?在快手做搜索是一种怎样的体验

    文 | 快手搜索 短视频和直播,越来越成为重要的内容供给形式,而内容供给侧的改变,也在潜移默化地推动着用户搜索习惯的变化.据报道,截止今年4月,超过50%的用户都在使用快手搜索功能,每天搜索达到2.5 ...

  7. 领域应用 | 大众点评搜索基于知识图谱的深度学习排序实践

    本文转载自公众号:美团技术团队. 本文介绍了大众点评搜索核心排序层模型的演化之路,包括结合知识图谱信息构建适合搜索场景的Listwise深度学习排序模型LambdaDNN以及特征工程实践和相关工具建设 ...

  8. 有赞基于ES的搜索系统架构是如何演进的?

    本文从架构上介绍了有赞搜索系统演进产生的背景以及希望解决的问题. 有赞搜索平台是一个面向公司内部各项搜索应用以及部分 NoSQL 存储应用的 PaaS 产品,帮助应用合理高效的检索和多维过滤功能.有赞 ...

  9. 洞察科技,感知未来:人工智能将如何改变学术搜索?

    科技信息是创新的基础,而学术搜索使得科研工作者可以从海量资料中更快捷.更精准地搜集所需要的信息. 近年来,学术搜索的内涵和外延不断扩大,从文献检索一直扩展到科研人员画像.交叉学科发现.学术趋势分析等. ...

最新文章

  1. 互联网协议 — Ethernet 局域网技术的发展
  2. -ms-,-moz-,-webkit-,-o-含义及各浏览器内核整理
  3. Serverless 全能选手,再下一城
  4. 量子计算机设计理念和思路,课程的设计理念与思路
  5. 如何在oracle中查询所有用户表的表名、主键名称、索引、外键等
  6. 3-3numpy:向量与矩阵的计算,矩阵的逆
  7. 这几个常用的 Go 官方库,性能居然还不如三方开源库
  8. ONE-ReactNative
  9. Heartbeat(v1、v2、pacemaker)集群组件概述
  10. java graphics旋转_Java图像之自定义角度旋转(实例)
  11. python扫描端口hack_一款集http端口扫描和目录批量扫描为一体的自动化工具
  12. 占位符是如何防止sql注入的?
  13. mac rz sz的使用
  14. 个人笔记-C#txt文本分割器
  15. 什么是编译、什么是连接。C++代码如何变成机器码,如何跨平台和嵌入式?嵌入式开发
  16. QQ和MSN 在线代码
  17. html5 游戏营销,五大H5游戏营销成功案例,你都玩过了吗?
  18. java枚举类的作用及其使用
  19. 2012服务器更改temp位置,如何更改windows的temp目录位置
  20. nkoj 中山纪念中学 trie

热门文章

  1. win10 设定计划任务时提示所指定的账户名称无效,如何解决?
  2. FD.IO-VPP研究及使用四(Qos策略)
  3. ov5640帧率配置_《使命召唤 黑色行动 冷战》详细PC配置需求公布
  4. 2012年MacBook更换SSD固态硬盘和16G内存条
  5. 微服务平台建设之微服务2.0技术选型思考
  6. php教程数据库,php数据库基础
  7. VR全景入驻百度地图,有哪些优势呢?
  8. 苹果app不能上架怎么办?
  9. 某程序员感叹:4年开发,年包才40多万
  10. python制作渐变的gif动图(简单版本)