首页 > 其他分享 >2024 -- 国庆集训 -- 临沂四中 -- 10月01 日 -- S/N模拟赛#1 题解

2024 -- 国庆集训 -- 临沂四中 -- 10月01 日 -- S/N模拟赛#1 题解

时间:2024-11-01 19:34:32浏览次数:1  
标签:10 暴力 -- 题解 复杂度 扩展 int

A. 2025--[炼石计划--NOIP模拟三]--T1--矩形

赛时草了个 \(O(n^4 \log (n))\) 竟然能过 70 分虽然本来就是这么分配的,发现正解只需将二分改为双指针就可以了,最气的是上面计算的时候用到还是尺取下面就用的二分(唐诗)。

其实这题就是暴力,然后在低级的暴力上加一些操作变得稍微高级一点。

计算的话直接暴力查找不同颜色,只不过范围由小变大时只需扩展外围即可,例如下面的示例图。

image

这样扩展的话每次只会扩展外围,所以复杂度为 O(n) 的扩展,总复杂度为 \(O(n^3)\) ,然后就没了,不知道为什么唐诗的我没写出来。

具体复杂度分析:取最左上时的最坏情况,每次扩展 \(p\) 个外围元素,总共扩展 \(n\) 次,总计算为 \(1+2+3+4+……+n = \frac{n\times (n+1)}{2}\),发现最坏情况都比 \(n^2\),其实在某种情况下可以直接看成 \(n^2\) 更新了,但是梦熊数据你值得信赖,则视通常扩展时为 \(O(n)\),故总复杂度为 \(O(n^3)\)。

#include<bits/stdc++.h>
using namespace std;
const int N=505;
int n,m;
int a[N][N];
int b[N][N];
int vis[N];
int main(){
	ios::sync_with_stdio(false);
	freopen("square.in","r",stdin);
	freopen("square.out","w",stdout);
	cin>>n>>m;
	int cnt=0;
	for(int i=1;i<=n;i++){
		b[i][n]=1;
		b[n][i]=1;
		for(int j=1;j<=n;j++){
			cin>>a[i][j];
		} 
	}

	for(int i=n-1;i>=1;i--){
		for(int j=1;j<=n-1;j++){
			cnt=0;
            memset(vis,0,sizeof vis);
            for(int p=0;i+p<=n&&j+p<=n;p++){
                for(int k=0;k<=p;k++){
                    if(!vis[a[i+p][j+k]]){
                        vis[a[i+p][j+k]]=1;
                        cnt++;
                    }
                    if(!vis[a[i+k][j+p]]){
                        vis[a[i+k][j+p]]=1;
                        cnt++;
                    }
                }
                if(cnt>m){
                    break;
                }
                b[i][j]=p+1;
            }
		}
	}
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++){
			cout<<b[i][j]<<" ";
		}
		cout<<"\n";
	}
	return 0;
} 

标签:10,暴力,--,题解,复杂度,扩展,int
From: https://www.cnblogs.com/sadlin/p/18521095

相关文章

  • CSP-S2024复盘
    CSP-S2024复盘好的:没有陷入100+100+100+0陷阱不好:写得太慢了痛失AK机会T1想得太慢了,没有观察样例读题的习惯所导致的,之后读题的时候应该大概理解完题意之后去看样例解释确保读对题以后再开始想。T2写的太慢了,第一次使用键盘在桌子下的电脑导致适应了15min才调整到了能......
  • 项目管理的工作内容有哪些
    项目管理是确保项目按时、按预算、按质量完成的过程,它包含了多个阶段和各种不同的工作内容:一、项目规划;二、项目执行;三、项目监控;四、项目收尾。其中,规划阶段的工作包括需求分析、范围定义、时间规划、资源分配等内容。一、项目规划需求分析:明确项目的目标和需求,与相关利益......
  • 项目经理在项目初期应如何界定项目范围
    在项目初期,项目经理应该明确项目范围以确保成功。这包括确定项目目标、明确项目结果、识别主要利益相关者、进行需求收集、创建详细的工作分解结构(WBS)。其中,创建详细的工作分解结构是至关重要的步骤。WBS将项目活动细分为可管理的任务,确保每个项目组件都得到适当的关注,有助于预......
  • [CSP-S 2024] 超速检测
    前言寄!算法计算超速区间容易发现可以计算出每一辆车的超速区间分讨策略大致如下voidCalc(intNow){if(Car[Now].v>V){if(Car[Now].a>=0){Car[Now].Left=Car[Now].d,Car[Now].Right=L;return;......
  • abc318_g Typical Path Problem 题解 圆方树
    题目链接:https://atcoder.jp/contests/abc318/tasks/abc318_g题目大意:给出一个有\(n\)个顶点和\(m\)条边的无向连通图\(G\),没有重边和自环。顶点的编号为\(1\simn\),边的编号为\(1\simm\),第\(i\)条边连接顶点\(u_i\)和\(v_i\)。给出图上三个不同的顶点\(A,B,C......
  • 超好用、超良心的 4个AI 工具分享
    这是我尝试的上百种AI工具,用了好几个月之后,总结出来的。无论是日常办公、学术研究,还是艺术创作的常用AI工具,他们有的实用,有的准确,有的有趣,有的非常有创意!都能满足你的各种需求。希望这些工具能成为你日常工作的得力助手。1、文思助手:写作工具文思助手是一款功能强大的AI写作......
  • ctfshow web入门 文件上传
    CtfshowWeb入门151 查看源代码,发现只能上传.png的文件用bp抓包.png的图片格式添加一句话木马,文件格式修改成.php   对于上传成功的后门代码,直接通过hackbar发送post包利用php内置system()函数执行  查看flag.php文件   152和上一题做题步骤一样......
  • 什么是软件即服务(SaaS)
    软件即服务(SaaS)作为一种基于云计算的软件交付模式,具有多租户架构、网络访问、定制化和灵活性、安全性和可靠性等特点。它在商业和个人生活中都有广泛的应用,帮助企业降低成本、提高效率和灵活性,同时为个人用户提供便捷和定制化的应用体验。一、软件即服务(SaaS)的定义软件即服务......
  • Lca最近公共祖先(非常实用)
    一般求lca的方式就是基于下面的模板,中间的过程就不推理了,有兴趣可以去听听y总的课,讲的很详细模板题给定一棵包含 n 个节点的有根无向树,节点编号互不相同,但不一定是 1∼n。有 m 个询问,每个询问给出了一对节点的编号 x 和 y,询问 x 与 y 的祖孙关系。输入格式输......
  • 什么是云管平台
    云管平台是一种网络技术,用于管理和优化企业的云计算环境。云管平台位于用户和云服务提供商之间,根据预定义的策略,自动化的管理和优化云资源。这种技术的出现,不仅提高了云环境的性能,也增强了其灵活性和扩展性。一、云管平台的概念云管平台是一种云计算管理技术,用于优化和管理企......