【BFS】Ball Aizu - 0033 原题正解 DFS

RT ORZ
硬生生 写成bfs

#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
#include <stack>
#include <queue>
using namespace std;

int a[15];
//int b[15];
int n;

struct node {
	int cnt;
	int pos1,pos2;
	int an[15];
	int bn[15];
}ball,tmp,t;

bool bfs(){
	queue<node> q;
	ball.an[0]=a[0];
	ball.pos1=0;
	ball.pos2=0;
	ball.cnt=0;
	q.push(ball);
	while(!q.empty()){
		tmp=q.front();
		int f=1;
		if(tmp.an[tmp.pos1]<a[tmp.cnt+1]){
			tmp.an[tmp.pos1+1]=a[tmp.cnt+1];
			tmp.pos1++;
			tmp.cnt++;
			q.push(tmp);
			f=0;
		}
		tmp=q.front();
		if(tmp.pos2==0||tmp.bn[tmp.pos2]<a[tmp.cnt+1]){
			tmp.bn[tmp.pos2+1]=a[tmp.cnt+1];
			tmp.pos2++,tmp.cnt++;
			q.push(tmp);
			f=0;
		}
		/* for(int i=0;i<q.front().pos1;i++){ cout<<q.front().an[i]<<" "; }cout<<endl; for(int i=0;i<q.front().pos2;i++){ cout<<q.front().bn[i]<<" "; }cout<<endl; cout<<" "<<tmp.cnt<<endl; q.pop(); // if(f) return 0; */
	q.pop();
		if(tmp.cnt==9) return 1;
	}
	return 0;
} 

int main(){
	while(cin>>n){
		while(n--){
			ball.pos1=0,ball.pos2=0,ball.cnt=0,ball.bn[0]=0;
			for(int i=0;i<10;i++) cin>>a[i];
			if(bfs()) cout<<"YES\n";
			else cout<<"NO\n";
		}
	// 
	}
	return 0;
}

无力orz

全部评论

相关推荐

#牛客帮帮团来啦!有问必答# 非吹牛逼非炫富,真实向各位大佬求助帖。本人简历上的的公司法人是自己,产品是自己独立开发的,但是担心创业经历会让HR抵触,所以将创业经历优化成实习经历,收入也写少了2/3(隐私信息打码)。进大厂是我中学至今的目标。苦于学历不行,所以决定专注提升履历,大一前便注册了一个高中教育公众号,一年涨了3万粉,月入过万,大学一直是经济独立。大二时攒下来10万,我开始创业做产品,是互联网教育/电商/新媒体等领域,大学三年赚了两百多万,前期是产品空白需求大,现在市场饱和,销量见顶,ROI低到经营困难,数据无法大幅度增长,履历的提升已经出现停滞,无法做出更大的业绩来够到进大厂的门槛。我一开始以为创业是加分项,负债的风险和创业的压力(疫情断货、恶意扣分罚款、背刺、竞对攻击等很多生死存亡的节点都让人焦虑痛苦和失眠)是我不想经历第二次的,因为没有合伙人,只能白天上课,晚上熬夜工作,每天睡5,6小时。没想到创业的经历,会有很多HR怀疑我的求职动机,给我带来很多阻挠。不求工资多少,城市哪里,在职场里发展3-5年以上是我坚定不移的人生规划,只为提高自己未来的下限。所以来到牛客向各位大佬求助。看看简历有什么要优化的,怎么写才有机会进大厂,感激不尽! #投递实习岗位前的准备# #找实习多的是你不知道的事# #实习,投递多份简历没人回复怎么办# #没有实习经历,还有机会进大厂吗#
ITTM:首先给大佬敬礼,然后建议是把工作经历和项目经历挪到最上面,这两个是面试时面试官的谈资,然后教育背景要放在最上面,自我评价一般是放最后的。另外,项目经历按照时间倒序排列,最近做的放在前面
点赞 评论 收藏
转发
点赞 收藏 评论
分享
牛客网
牛客企业服务