首页 > 其他分享 >牛客小白月赛105 补题

牛客小白月赛105 补题

时间:2024-11-24 23:33:33浏览次数:6  
标签:aa cnt string int 牛客 补题 小数 lz 105

B lz的数字问题

链接:B-lz的数字问题_牛客小白月赛105

思路:多列举测试用例,考虑完整。首先判断是整数还是小数,小数分整数和小数两部分判断(函数调用最方便!)。注意有<小数的小数部分不够六位>的情况

看个错误代码:

tip(注释里):1.判断整数和小数应遍历整个数组,若出现".",则为小数,否则相反。

2.数组 string ar,aa;后添加新元素ar.push_back('0'); 或ar += aa[j];

B wa

#include<bits/stdc++.h>
using namespace std;
int main()
{
	string aa,bb;
	string al,ar;
	string bl,br;
	cin>>aa>>bb;
	int h=0,t=0;
	for(int i=0;i<aa.size();i++){
		if(aa[i]=='.'){
			for(int j=0;j<i;j++){
				al[j]=aa[h];
				h++;
			}
			t=i+1;
			for(int j=0;j<aa.size()-i;j++){
				ar[j]=aa[t];
				t++;
	    	}
	    	break;
    	}
    	else {                             //1
    		for(int i=0;i<aa.size();i++){
				al[i]=aa[i];
			}
			ar={"000000"};
		}

    }
	for(int i=0;i<bb.size();i++){
		if(bb[i]=='.'){
			for(int j=0;j<i;j++){
				bl[j]=bb[h];
				h++;
			}
			t=i+1;
			for(int j=0;j<bb.size()-i;j++){
				br[j]=bb[t];
				t++;
			}
			break;
		}
		else {
    		for(int i=0;i<bb.size();i++){
				bl[i]=bb[i];
			}
			br={"000000"};
		}
	}


	if(al==bl&&ar[0]==br[0]&&ar[1]==br[1]&&ar[2]==br[2]&&ar[3]==br[3]&&ar[4]==br[4]&&ar[5]==br[5])   //2
		cout<<"YES";
	else cout<<"NO";


	return 0;
}

 

下面是对的qwq,把所有要比较的数都存到ans数组里好简单

B ac
 #include<bits/stdc++.h>
using namespace std;
string f(string aa){
	string ans= "";//注意先定义个空字符串
	int ok=0;//遇到了小数点
	int cnt=0;//小数点后有几位
	for(int i=0;i<aa.size();i++){
		if(ok)  cnt++;
		if(aa[i]!='.') ans+=aa[i];//整数部分
		else ok=1;
		if(cnt==6) break;
	}
	for(int i=cnt;i<6;i++){
		ans+='0';//不足补0
	}
	return ans;
}

int main(){
	string aa,bb;
	cin>>aa>>bb;
	if(f(aa)==f(bb)) cout<<"YES";
	else cout<<"NO";
	
	return 0;
}

E lz的括号问题

链接:E-lz的括号问题_牛客小白月赛105

思路:反方向思考,这道题已知的()始终是成对出现,即可以只考虑一方面“(”。

总数n减去<已找到的“(”>即<已匹配的>等于<未匹配的>.

记“(”数量为cnt,当编号为  i  每出现一个"(", cnt++;n-cnt表示答案,若出现")",则 cnt--;

 注意考虑"-1"的两种情况!

代码:

#include<bits/stdc++.h>
using namespace std;
int main()
{
	int n;
	string s;
	cin>>n>>s;
	vector<int>ans;//定义整数动态数组
	int cnt=0;//未匹配的"("的数量
	for(int i=0;i<s.size();i++){
		if(s[i]=='(') {
			cnt++;
			ans.push_back(n-cnt);//给的是()成对出现
		}
		else cnt--;//匹配一个减一个
		if(cnt<0){//"("数量少
			cout<<"-1";
			return 0;
		}
	}
	
	if(cnt) {//遍历结束后还有未匹配的"("
		cout<<"-1";
		return 0;
	}
	for(int i=0;i<ans.size();i++){
		cout<<ans[i]<<" ";
	}
	return 0;
}

 

标签:aa,cnt,string,int,牛客,补题,小数,lz,105
From: https://www.cnblogs.com/hanbaodao/p/18566613

相关文章

  • 牛客周赛 Round 69(A~E)
    https://ac.nowcoder.com/acm/contest/96115#question真难过,一个小时竟然做不出F。没想到F是线段树的变式,我还想开7,8个树状数组进行维护,直接秀逗了。要做大物作业,先丢个题解吧A.构造C的歪#include<iostream>#include<queue>#include<map>#include<set>#include<vector>#in......
  • SSM电影推荐61057--程序+源码+数据库+调试部署+开发环境
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容一、研究背景与意义随着数字媒体的飞速发展,电影作为一种重要的文化娱乐形式,其数量与种类正以前所未有的速度增长。面对海量的电影资源,如何快速、准......
  • 牛客面试必刷TOP101之链表专项
    个人主页:C++忠实粉丝欢迎点赞......
  • P1055 [NOIP2008 普及组] ISBN 号码
    题目描述每一本正式出版的图书都有一个ISBN号码与之对应,ISBN码包括 99 位数字、11 位识别码和 33 位分隔符,其规定格式如 x-xxx-xxxxx-x,其中符号 - 就是分隔符(键盘上的减号),最后一位是识别码,例如 0-670-82162-4就是一个标准的ISBN码。ISBN码的首位数字表示书籍的......
  • [题解](更新中)[test06]2024/11/23 模拟赛 / 2023牛客OI赛前集训营-提高组(第三场) A~C
    原题页面:https://ac.nowcoder.com/acm/contest/65194Statements&Solution:https://www.luogu.com.cn/problem/U507978\(80+80+50+24=234\)。A贪心+双指针。根据贪心思想,大值选大、小值选小。我们按绝对值从大到小给\(a\)排序,再按从小到大给\(b\)排序,取双指针\(l=1,r=m\)......
  • 牛客小白月赛105 C,D,E题解
    题目链接:C题本来想用搜索,发现不行后还是分类讨论了,我在原来的图形上加了一圈'x'方便判断,里面的搜索可要可不要。#include<bits/stdc++.h>usingnamespacestd;typedeflonglongll;lllo=1e9+7,maxx=0,l,r,t;chara[4][250500];llmod=1e9+7;lln,m,k,z,b[500050]={0};/......
  • 【牛客训练记录】牛客小白月赛105
    训练情况赛后反思看十佳歌手去了,比较晚回来,只开了A题,B题不看数据范围直接一眼丁真直接WA了一发A题两个数相乘进行比较,再判断即可。#include<bits/stdc++.h>#defineintlonglong#defineendl'\n'usingnamespacestd;voidsolve(){inta1,b1,a2,b2;cin>>a1>>......
  • 每日OJ题_牛客_AB20走迷宫_BFS_C++_Java
    目录牛客_AB20走迷宫_BFS题目解析C++代码Java代码牛客_AB20走迷宫_BFS走迷宫_牛客题霸_牛客网(nowcoder.com)描述:        给定一个n×m的网格,在网格中每次在不超过边界的情况下可以选择向上、向下、向左、向右移动一格。网格中的一些格子上放置有障碍物,放有......
  • 20241022_105024 c语言 模拟用户登陆
    需求代码......
  • C - sum(牛客小白月赛102)
    题目链接:C-sum题目描述:示例说明:解:这题典型的贪心问题,是求最小的操作次数。首先我们可以先算出这n个数的和s,s和sum的大小有三种情况。当s=sum时,一个数字也不用修改,答案为0。而剩下的两种情况可以合为一种情况来做。首先我们要知道如果把这n个数都变为相反数,则s也会变为......