首页 > 其他分享 >日记

日记

时间:2024-05-08 21:23:32浏览次数:12  
标签:标号 arr int 代码 100005 日记 dot

2024.5.8

今天写了洛谷
P1003 [NOIP2011 提高组] 铺地毯
关于这题,我有感悟:
先呈上我学习的第一篇代码:

#include<iostream>
using namespace std;
int main(){
	int n=0;
	long long arr[10001][10001];
	cin>>n;
	for(int i=1;i<=n;i++){
		int a,b,c,d;
		cin>>a>>b>>c>>d;
		for(int j=a;j<=a+c;j++){
			for(int k=b;k<=b+d;k++){
				arr[j][k]=i;
			}
		}
	}
	int dot_1=0,dot_2=0;
	cin>>dot_1>>dot_2;
	if(arr[dot_1][dot_2]==0) cout<<"-1";
	else cout<<arr[dot_1][dot_2];
	return 0;
}
该代码中错就错在其内存为4*10000*10000=400000000byte=400000kb=400mb超出了所给出的内存;
为此,我们得舍弃二维用一维;
#include<iostream>
using namespace std;
int main(){
	int n=0;
	int arr[100005],brr[100005],crr[100005],drr[100005];
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>arr[i]>>brr[i]>>crr[i]>>drr[i];
	}
	int x,y;
	cin>>x>>y;
	int count=0;
	for(int i=1;i<=n;i++){
		if(x>=arr[i]&&x<=crr[i]+arr[i]&&y>=brr[i]&&y<=drr[i]+brr[i]){
			count=i;
		}
	}
	if(count==0) cout<<"-1";
	else cout<<count<<endl;
	return 0;
}
以上代码就运用一维数组,避免了mle
再来讲讲两者的解题逻辑:
第一个代码是把所有的二维数列都标上了地毯的标号,一层覆盖一层,然后直接判断所给的点位上的最上面的标号是多少
第二个代码是根据给出的要查找的点位直接在已输入的四个一维数组中一层层判断范围,如果在这个范围中,就不断更新地毯标号,判断完毕就可得到最上面的地毯标号

标签:标号,arr,int,代码,100005,日记,dot
From: https://www.cnblogs.com/2401377187PandZ/p/18180895

相关文章

  • 日记
    今天了解了一下记忆化搜索,作为一种dp,我难以理解#include<iostream>#include<cstdio>usingnamespacestd;longlongdp[22][22][22];longlongw(longlonga,longlongb,longlongc){ if(a<=0||b<=0||c<=0){ return1; } if(a>20||b>20||c>20){......
  • 文化课日记
    博主还活着!2024.3.10退役三天,直接第一次月考。最后语数英物化生拿到了94+73+107.5+30+32+32,年排833。数学前面做不下去了直接开19,最后没做出来/cf。语文作文瞎蒙出来49,感觉厉害。2024.4.23来描述一下近况。开学考之后学校专门给我们补了快三周的课,大概是除了语文的另外......
  • 九下五月上旬日记
    5.1闲话做题纪要luoguP3521[POI2011]ROT-TreeRotationsWhatis先序遍历?对于一棵子树的根节点\(x\),交换其左右子树,不会对以前的节点产生影响(不会更改贡献)。这棵子树产生的贡献值来自三种情况,分别是都在左子树,都在右子树,左子树和右子树各一个。只考虑第三种情......
  • 投资日记_2
    一直以来,我都想建立自己的量化模型,开设自己的金融分析网站。如今,网站已经有了雏形,但是算法还没到位。2021年,我曾经短暂地将它部署上线。目前,手头持有的投资项目有:A股、基金、理财、数字货币、合约和定期存款。基金、合约盈利为负,其他为正。手头持有方正科技、伊利股份和永泰能......
  • IOS CI踩坑日记
    ZACMSProject.xcodeproj:error:Invalidtrustsettings.Restoresystemdefaulttrustsettingsforcertificate"iPhoneDeveloper:xxxxx(xxxxxxxxxx)"inordertosigncodewithit.(intarget'xxxxxx'fromproject'xxxxxxxx')......
  • 2024日记
    4.24:打由乃打扑克然后……我招谁惹谁了啊!加个代码,求神帮调#include<bits/stdc++.h>usingnamespacestd;#defineinfile(x)freopen(x,"r",stdin)#defineoutfile(x)freopen(x,"w",stdout)#defineerrfile(x)freopen(x,"w",stderr)usingll=longlo......
  • 主题捣鼓日记
    主题捣鼓日记sakura版本(YYDS)主要框架都没怎么动,功能挺完整的。但是如果要DIY还是得自己把代码捋一遍,不然从哪改起都不知道,注释不能说完全没用。。。捣鼓了两天两夜,还是有很多细节没改好,main.js翻了四五遍,看评论区发现诸多细节还要改CSS文件,太难了。。前端都忘得差不多了,赶紧借......
  • 九下四月下旬日记
    4.21闲话做题纪要4.22闲话做题纪要luoguP1494[国家集训队]小Z的袜子设\([l,r]\)内每个数出现的次数为\(cnt_{i}\),有\(\begin{aligned}\frac{\sum\limits_{i=1}^{\max\limits_{j=1}^{n}\{c_{j}\}}\binom{cnt_{i}}{2}}{\binom{r-l+1}{2}}\end{aligned}\)......
  • 日记
    2024/4/21#include<stdio.h>voidf(doublea,doubleb,doublec,double*max){  *max=a;  intarr[3]={a,b,c};  for(inti=0;i<3;i++){    if(*max<arr[i])*max=arr[i];  }}intmain(){  doublea=0.0,b=0.0,c=0.0;  doublemax_1=0......
  • 日记
    2024.4.19#include<stdio.h>voiddot(intarr[6][6],int*num,int*row,int*col){ intc=0; intc_1=0; for(inti=1;i<=5;i++){ for(intj=1;j<=5;j++){ for(intp=1;p<=5;p++){ if(arr[i][j]<=arr[p][j]){ c++; } } if(c==5)......