集训被虐第一天7.31
今天就看了搜索,图论根本不知道,搜索分为广搜bfs和深搜dfs,求最小步数涉及到最小时用的比较多,广搜是一层层的来,从初始状态开始,利用规则生成下一层,检查是否出现目标状态,用queue实现,取出(front)队头元素,删除(pop)队头元素,压入(push),直到找到目标状态(有解)或队列为空(无解),深搜时一条路走到黑,看是否符合目标状态,不符合回溯,有的需要回溯,有的不需要。
bfs:catch the cow
#include<iostream>
#include<queue>
#include<cstring>
using namespace std;
const int inf=200005;
int v[inf],cnt;
void bfs(int n,int k)
{
queue<int>q;
q.push(n);//位置
q.push(cnt);//步数
v[n]=1;//是否遍历
while(!q.empty())
{
n=q.front();
q.pop();
cnt=q.front();
q.pop();
if(n==k)//目标状态
return;
if(n-1>0&&!v[n-1])//规则
{
q.push(n-1);
q.push(cnt+1);
v[n-1]=1;
}
if(n+1<inf&&!v[n+1])
{
q.push(n+1);
q.push(cnt+1);
v[n+1]=1;
}
if(2*n<inf&&!v[2*n])
{
q.push(2*n);
q.push(cnt+1);
v[2*n]=1;
}
}
}
int main()
{
int n,k;
while(cin>>n>>k)
{
memset(v,0,sizeof(v));
cnt=0;
if(n>k)
cout<<n-k<<endl;
else
{
bfs(n,k);
cout<<cnt<<endl;
}
}
}
dfs a knight's journey
#include<bits/stdc++.h>
using namespace std;
int v[27][27],p,q,flag;
//int dy[8]={2,2,1,-1,-2,-2,-1,1};
//int dx[8]={1,-1,-2,-2,-1,1,2,2};
int dx[8]={-1,1,-2,2,-2,2,-1,1};//由于按字典序(lexicographically)输出,所以在方向的时候不是随意写,按字典序走,dx就是表示行
int dy[8]={-2,-2,-1,-1,1,1,2,2};
//int dy[8]={-1,1,-2,2,-2,2,-1,1};
//int dx[8]={-2,-2,-1,-1,1,1,2,2};
int path1[26*26];
char path2[26*26];
bool island(int a,int b)
{
if(a<0||a>=p||b<0||b>=q)//判断是否越界
return true;
return false;
}
void dfs(int x,int y,int num)//num步数
{
path1[num]=x;path2[num]=y+'A';
v[x][y]=1;
if(num==p*q)
{
flag=1;
return;
}
for(int i=0;i<8;i++)
{
if(island(x+dx[i],y+dy[i])) continue;
if(v[x+dx[i]][y+dy[i]]) continue;
v[x+dx[i]][y+dy[i]]=1;
dfs(x+dx[i],y+dy[i],num+1);
if(flag) return;
else v[x+dx[i]][y+dy[i]]=0;//回溯
}
}
int main()
{
int t,i,j,k;
cin>>t;
for(i=1;i<=t;i++)
{
cin>>p>>q;
flag=0;
memset(v,0,sizeof(v));
/*for(k=0;k<p;k++)
{
for(j=0;j<q;j++)
{
dfs(k,j,1);
if(flag) break;
}
if(flag) break;;
}*/字典序说以从左上角开始
dfs(0,0,1);
cout<<"Scenario #"<<i<<":"<<endl;
if(flag)
{
for(j=1;j<=p*q;j++)
{
cout<<path2[j]<<path1[j]+1;
}
cout<<endl<<endl;
}
else
cout<<"impossible"<<endl<<endl;
}
}
dfs find the multiple
#include<bits/stdc++.h>
using namespace std;
int n,flag;
void dfs(long long a,int dep)
{
if(flag) return;//保证输出一个
if(a%n==0)
{
cout<<a<<endl;
flag=1;
}
if(dep==19) return;//本来没写,如超出longlong范围就会出随机数
dfs(a*10,dep+1);
dfs(a*10+1,dep+1);
}
int main()
{
while(cin>>n)
{
if(n==0) break;
//cout<<dfs(1,1)<<endl;
flag=0;
dfs(1,1);
//cout<<b<<endl;
}
}
集训被虐第一天7.31相关推荐
- 项目使用ts辅助_我如何建立辅助项目并在第一周获得31,000名用户
项目使用ts辅助 by Jurn W 由Jurn W 我如何建立辅助项目并在第一周获得31,000名用户 (How I Built my Side Project and Got 31,000 Use ...
- python程序开发入门_Python开发入门14天集训营-第一章
python第一章 python变量 变量存储在内存中的值,数据是临时的.这就意味着在创建变量时会在内存中开辟一个空间. 基于变量的数据类型,解释器会分配指定内存,并决定什么数据可以被存储在内存中. ...
- 福建省队集训被虐记——DAY3
昨天没写--今天补上吧 一如既往的跪了 棋盘 [问题描述] 给出一个N*M的方格棋盘,每个格子里有一盏灯和一个开关,开始的时候,所有的灯都是关着的.用(x, y)表示第x行,y列的格子.(x, y)的 ...
- 中石油 暑期集训个人赛第一场 题解
首先是签到题部分:A,E,I. 传送门:点击打开链接 然后是DP部分:C,G,H. 传送门:点击打开链接 还有其他:B,J,H,F. 神奇的B题(我的第一个一血) 问题 B: 拯救 ...
- 【2022寒假基础集训】第一场 - B.炸鸡块君与FIFA22【倍增DP+集合分类】
Date:2022.04.27 题目描述: 热爱足球(仅限游戏)的炸鸡块君最近购买了FIFA22,并且沉迷于FIFA22的Rivals排位上分. 在该排位系统中,每局游戏可能有胜利(用W表示).失败( ...
- 福建省队集训被虐记——DAY1
今天算是省冬的第一天--早上柯黑出题,说是"信心欢乐赛",其实是"使你失去信心.不再欢乐的比赛" 顺便orz一下来看这篇文章的各路神犇--求轻虐 水题 (py. ...
- 英雄算法联盟 - 六月集训排行榜 (截止今日第31天)
文章目录 ▋ 积分排名 ▋ 涉及费用 ▋ 适宜人群 ▋ 训练时间 ▋ 如何参加 ▋ 训练程度 ▋ 详细介绍 ▋ 本群玩法 ▋ 本群闭环 ▋ 积分排名 排名 名字 积分 1 小星星[早起早睡版] 29 ...
- 北京集训:20180310
北京集训的第一天,我完美爆零...... 这其中的经历,十分有趣呢. T1: 这题一看就是先猜一个性质然后利用他去求解. 如果我们知道怎么插入,怎么判定的话,可以线段树分治的说. 然后我猜了一个结论: ...
- oracle中季末最后一天,oracle有关时间计算,得到季度第一天、最后一天
------------------------------------------------ Oracle 日期------------------------------------------ ...
最新文章
- win7下安装rose
- 【译】Diving Into The Ethereum VM Part 4 - How To Decipher A Smart Contract Method Call
- hadoop streaming编程小demo(python版)
- php正则学习,php中正则表达式的学习及应用
- mysql-workbench 导入csv格式数据报错:Unhandled exception: Could not determine delimiter
- C++变量作用域、生存期、存储类别
- 程序入口地址的直接定制表【 (1) 清屏(2) 设置前景色 (3) 设置背景色 (4) 向上滚动一行】...
- Java Class对象
- android开发:NDK开发配置
- CSDN:2020年度CSDN博客之星评选竞赛——180号【一个处女座的程序猿】,感谢您,投上的宝贵一票,感谢!感恩!
- Python 导入包时报错 Traceback (most recent call last)
- 打工就是 “演戏”,你可以认真,但别太当真
- 网吧台式计算机配置,2017网吧电脑配置
- Mac OS 10.15 修改登录壁纸
- 中国科学院院士徐宗本:人工智能的基石是数学
- HTML利用posotion属性定位 小技巧
- 第6期(江西省吉安市永丰县)县长手机信箱工作简报(自吹自擂政绩,自圆其说)
- 超级计算机多层网络,超级计算机的多层架构抽象及描述
- 华擎主板设置来电开机_华擎主板设置来电开机_一块性价比超高的B550主板、华擎(ASRock)B550 Extreme4极限玩家主板 评测......
- 未来几年的IT发展方向-目前的趋势已经非常明朗
热门文章
- python培训班靠谱吗-quot;quot;经常看到的python培训机构排名靠谱嘛?应该如何选择培训机构?...
- python基础知识-python基础知识(一)
- python自学要多久-python从入门到精通需要多久?你需要先明白这两个点
- python编程教学软件-Python编程教学app
- python3入门代码-Python3 教程 | 菜鸟教程
- python安卓下载-python手册中文版apk下载
- python是什么软件-python是什么软件
- 基于单片机和语音识别的智能家电控制平台
- php使用jasperreport,用PHP访问JasperReport | 学步园
- egg风格 什么意思_egg框架学习笔记