首页 > 其他分享 >2024/11/25 模拟赛总结

2024/11/25 模拟赛总结

时间:2024-11-25 21:44:52浏览次数:9  
标签:11 25 nx dist int 2024 ny ans dir

画展

image
没看数据范围想了半天DP。裸贪心。

滑冰场

image

1.建分层图跑最短路

2.启发式搜索

#include <bits/stdc++.h>
using namespace std;
#define int long long
constexpr int MAX_N = 2000;
constexpr int INF = LLONG_MAX;

int n, m;  // Grid dimensions
char grid[MAX_N][MAX_N]; 
int dist[MAX_N][MAX_N][5];  

pair<int, int> start;  

const int dx[5] = {0, 1, 0, -1, 0};
const int dy[5] = {0, 0, 1, 0, -1};

struct Node {
	int x, y, dir, turns;
};

queue<Node> q;

void bfs() {
	for (int i = 1; i <= 4; ++i) {
		dist[start.first][start.second][i] = 0;  
		q.push({start.first, start.second, i, 0}); 
	}
	
	while (!q.empty()) {
		Node curr = q.front();
		q.pop();
		
		int x = curr.x, y = curr.y, dir = curr.dir, turns = curr.turns;
		
		if (x < 1 || x > n || y < 1 || y > m) continue;
		
		if (grid[x][y] == '.') {
			int nx = x + dx[dir];
			int ny = y + dy[dir];
			
			if (dist[nx][ny][dir] > dist[x][y][dir] + 1) {
				dist[nx][ny][dir] = dist[x][y][dir] + 1;
				q.push({nx, ny, dir, turns + 1});
			}
		}
		else {
			for (int newDir = 1; newDir <= 4; ++newDir) {
				int nx = x + dx[newDir];
				int ny = y + dy[newDir];
				if (dist[nx][ny][newDir] > dist[x][y][dir] + 1 + turns) {
					dist[nx][ny][newDir] = dist[x][y][dir] + 1 + turns;
					q.push({nx, ny, newDir, turns + 1});
				}
			}
		}
	}
}

void solve() {
	for (int i = 1; i <= n; ++i) {
		for (int j = 1; j <= m; ++j) {
			cin >> grid[i][j];  
			if (grid[i][j] == 'G') {
				start = {i, j};  
			}
			for (int k = 1; k <= 4; ++k) {
				dist[i][j][k] = INF;  
			}
		}
	}
	
	bfs(); 

	for (int i = 1; i <= n; ++i) {
		for (int j = 1; j <= m; ++j) {
			int res = min({dist[i][j][1], dist[i][j][2], dist[i][j][3], dist[i][j][4]});
			if (res == INF) cout << -1 << ' ';  
			else cout << res << ' ';  
		}
		cout << endl;
	}
}

signed main() {
	freopen("U.in","r",stdin);
	freopen("U.out","w",stdout);
	ios::sync_with_stdio(false);
	cin.tie(nullptr);
	cin >> n >> m;
	solve();
	
	return 0;
}

比赛

image

image

这种题还是跳了把...noip前不考虑

#include <bits/stdc++.h>
using namespace std;
#define int long long
const int N = 1e6 + 10;
int T, n, p;
int a[N];

int calculateAnswer(int n, int p, int a[]) {
	int ans = 0;
	sort(a + 1, a + n + 1);
	
	if (p == 1) {
		for (int i = 1; i <= n - 2; ++i) {
			if (a[i] + n >= a[n] + 1)
				ans += (n + i) * (n - i - 1) / 2 - (n - i - 1) * (i + 1);
		}
		for (int i = 1; i <= n - 2; ++i) {
			if (a[i] + n >= a[n - 1] + 1)
				ans += n - i - 2;
		}
		for (int i = 1; i <= n - 2; ++i) {
			if (a[i] + n >= a[n - 2] + 1)
				ans++;
		}
	} else if (p == 2) {
		for (int i = 1; i <= n - 2; ++i) {
			if (a[i] + n >= a[n] + 1)
				ans += (n + i) * (n - i - 1) / 2 - (n - i - 1) * (i + 1);
		}
		for (int i = 1; i <= n - 1; ++i) {
			if (a[i] + n >= a[n - 1] + 1)
				ans += n - i - 2;
		}
		for (int i = 1; i <= n - 1; ++i) {
			if (a[i] + n >= a[n - 1] + 1)
				ans++;
		}
	}
	return ans;
}

void solve() {
	cin >> n >> p;
	for (int i = 1; i <= n; ++i)
		cin >> a[i];
	cout << calculateAnswer(n, p, a) << endl;
}

signed main() {
	freopen("T.in", "r", stdin);
	freopen("T.out", "w", stdout);
	cin >> T;
	while (T--) solve();
	return 0;
}

标签:11,25,nx,dist,int,2024,ny,ans,dir
From: https://www.cnblogs.com/Kang-shifu/p/18568841

相关文章

  • NOip2024前最后一周训练日记
    也是有了博客了,上周花了点时间稍微搭了一下界面。闲话初三生,目前为止初中去过三个学校。第一个学校。这时基本没怎么沾OI,只是靠机构和自学了解的,因此前两年的CSP都基本是不好。记得初一下的时候,GF组织算法冬令营,原本想着打比赛打的好一点去进本部校队的,但我发现了甚至零基......
  • [CTF]2024 强网杯青少年专项赛 writeup
    CryptoClasics打开题目,发现如下的cyberchef界面密文为JBtDQ0JxQxVTPDGYF05EJNtSPSRPOSaAF0JHQ0JLKlNNLlOYG0lQLC1NIBfTOSiGEEFIFT9OBEBUEEPPS05IMSuKJxW9SD09那么通常只需要倒着来即可。vigeneredecode一次,key为GAMELAB然后Atbash来一次(https://blog.csdn.net/weixin_4702......
  • COMP2611: Computer Organization
    COMP2611:ComputerOrganizationFall2024ProgrammingProject:AircraftWar(Deadline11:55pm,Dec1,SundayviaCanvas)Copyright:Allprojectrelatedmaterials(thisprojectdescription,modifiedMARS,projectskeleton)isforpersonalusageofstudent......
  • 11.25 模拟赛
    复盘T1好像很可做。推式子启动。1h过了大样例。T2。怎么又是组合数,比普通的范德蒙德卷积多一个上限?这可做吗?好像不会,部分分启动。有\(45\)分暴力。两个简单的性质能做到\(55\)分。但\(n-m\le20\)真的没有思路。事实上这个东西非常好做(观察组合数什么是否为\(0\))但是......
  • 11月阅读笔记
    在这个月,我有幸阅读一本名为程序员之道(简称)的书籍,这是我为它写的第一篇阅读笔记。《程序员之道是我未曾了解过的书籍,其作者我也不甚了解。但我认为这本书的文字详实、实用,深度剖析了软件设计、编码实践、代码质量和团队协作的各个方面,更是每个程序员不可多得的学习资源。这本书......
  • C#/.NET/.NET Core技术前沿周刊 | 第 14 期(2024年11.18-11.24)
    前言C#/.NET/.NETCore技术前沿周刊,你的每周技术指南针!记录、追踪C#/.NET/.NETCore领域、生态的每周最新、最实用、最有价值的技术文章、社区动态、优质项目和学习资源等。让你时刻站在技术前沿,助力技术成长与视野拓宽。欢迎投稿、推荐或自荐优质文章、项目、学习资源等。每......
  • 24.10.25 远程连接以及排错
    一.Typora的使用ctrl+数字表示几级标题ctrl+shift+[表示有序列表ctrl+shift+]表示无序列表enter两次列表消失英文下的点,三点bash+回车表示代码块英文下的点,三点sh+回车表示代码块二.VMware使用1.VMware只能双击一次出现这个提示,表示已经打开一个VMware......
  • 11.25随笔
    这里是11.25随笔。本周作业:没写完差旅费报销管理信息系统2.1页面要求(1)系统可以通过浏览器直接访问;(1分)(2)各个功能页面整体风格统一;(3)首页为用户登录页面,职员、职员经理、总经理、财务人员四种角色用户登录后,进入相应的功能页,只能看到角色允许访问功能模块,用户登录界面包含用户......
  • ISSCC2025 Computing-In-Memory Session 趋势整理
    今天下午ISSCC2025发布会开完,CIMSession花落谁家终于清楚了。今年CIM被放到了Session14,共录取七篇,投稿数如果和去年差不多的话,那么录取率应该是进一步下降了(去年录取了九篇)。只能说体感上来说就明显越来越卷。还是先来看一下录取的Paper:7篇都来自远东,两篇台湾,五篇大陆,东南......
  • 【论文阅读】Zero-Reference Low-Light Enhancement via Physical Quadruple Priors(CV
    概要任务领域:低光增强;零样本/无参考;RGB域针对问题:零参考是成功的,但是缺少光照概念,依赖手工设置。解决方法:基于Kubelka-Munk理论,设计物理四先验作为低光和正常光的不变要素,再利用生成模型将先验转为图像。主要创新:物理四先验的设计;先验到图像的映射。最终表现:优于大多数无监......