Codeforces Global Round 16 D2. Seating Arrangements (hard version)
D2. Seating Arrangements (hard version)
题目传送门:
题目传送门
题面:
题目大意:
这题目很搞。
就是给你n∗mn*mn∗m的网格,每个格子有自己的编号,编号方法见上图。
再给你n∗mn*mn∗m个数字,要求数量越大的数字要在编号越大的格子里。然后定义ansansans。
好难讲啊,就是每个数字要按照给定顺序到该去的地方,每途径一个非空网格就要ans++;ans++;ans++;问最终整个网格ansansans是多少。
思路:
哎,当时比赛时候心态不好,其实肯定能做出来的!
只能说还是要冷静点。
多推两个就能发现贪心方法。
实际上有一点必须要明确最终的排列方式是确定且唯一的。
所以所有排列都是从小往大放,这是确定的,唯一可以有安排余地的是:次序不同但大小一样的数字。
贪心策略主要是对id从小到大
or 从大到小排序
。
具体看代码。
代码:
#include <bits/stdc++.h>
using namespace std;
const int maxn = 310;
struct Node {int x, id;
} a[maxn * maxn];
bool cmp1(Node x, Node y) {if (x.x == y.x) return x.id < y.id;return x.x < y.x;
}bool cmp2(Node x, Node y) {if (x.x == y.x) return x.id > y.id;return x.x < y.x;
}
int main() {cin.tie(0);ios::sync_with_stdio(false);int T;cin >> T;while (T--) {int n, m;cin >> n >> m;for (int i = 1; i <= n * m; i++) {cin >> a[i].x;a[i].id = i;}sort(a + 1, a + 1 + n * m, cmp1);int ans = 0;for (int i = 1; i <= n; i++) {sort(a + 1 + (i - 1) * m, a + 1 + i * m, cmp2);int l = (i - 1) * m + 1, r = i * m;for (int j = l; j <= r; j++)for (int k = l; k < j; k++)if (a[j].id > a[k].id) ans++;}cout << ans << endl;}
}
Codeforces Global Round 16 D2. Seating Arrangements (hard version)相关推荐
- Codeforces Global Round 23 E CF1746E Joking (Hard Version)
题意 互动题 你需要猜一个数 范围e5 询问在不在数集中 限最多52次 猜测是不是某个数 最多两次 其中询问反馈你的答案未必是对的,只保证2次连续询问至少有一次是对的 猜测都是对的 思路 对同一个数集 ...
- codeforces global round 23
constest :codeforces global round 23 contest time:2022.10.16 contest grade: 2800 contest rating chan ...
- Codeforces Global Round 1 晕阙记
Codeforces Global Round 1 晕阙记 我做这场比赛的时候晕得要死.做这三道题做太久了,rating涨不起来啊! A 如果愿意的话你可以看做是膜2意义下的运算,写快速幂等各种膜运算 ...
- Codeforces Global Round 3
Codeforces Global Round 3 A. Another One Bites The Dust 有若干个a,有若干个b,有若干个ab.你现在要把这些串拼成一个串,使得任意两个相邻的位置 ...
- Codeforces Global Round 14 F. Phoenix and Earthquake 思维 + 并查集
传送门 文章目录 题意: 思路: 题意: 给你nnn个点,mmm条边,限制xxx,每个点都有沥青aia_iai,定义合并两个点即两点之间有边且au+av≥xa_u+a_v\ge xau+av≥x ...
- Codeforces Global Round 1
Codeforces Global Round 1 题解:The Editorial of the First Codeforces Global Round A:其实mod 2计算一下就行了 B:删 ...
- 【Codeforces Global Round 23】B. Rebellion
Codeforces Global Round 23中B. Rebellion Codeforces比赛记录 文章目录 题目链接: 一.B. Rebellion 题目意思: 上思路: 总结 B. Re ...
- Codeforces Global Round 4-D. Prime Graph(伯特兰-切比雪夫定理)
题目:Codeforces Global Round 4-D. Prime Graph 题意:给出n(顶点的个数),要求所得图满足: 1.无平行边和自环 2.边的总数是个质数 3.每个点的度(也就是点 ...
- Codeforces Beta Round #16 (Div. 2 Only)【未完结】
2022.3.9 题目地址:https://codeforces.com/contest/16 目录 A. Flag[模拟] B. Burglar and Matches[贪心] C. Monitor ...
- Codeforces Global Round 23 C. Permutation Operations
赛时随便写了个做法,看standing,发现很多人的做法也是很奇特 赛后看了官方题解..翻译下 题意: 每次可以给一个任意的后缀里的所有数 + i +i +i 执行n次. 使得逆序对最少. 思路: t ...
最新文章
- 免除重装系统的烦恼,为SSD做系统移植,并从光驱位SSD启动系统
- Ext JS 6学习文档-第3章-基础组件
- SpringBoot高级消-息-RabbitMQ基本概念简介
- 360浏览器打不开微信的连接服务器,上午还能打开,下午360浏览器打不开微信公 – 手机爱问...
- python 轮廓矩阵_python – 在3D numpy矩阵中绘制给定值的曲面轮廓
- 十进制转化为二进制_使用Windows 10内置计算器,将十进制数快速转换为二进制数,试试...
- jsp mysql模板_jsp的分页查询的代码(mysql数据库)
- 02.XMemcached的使用
- 如何运行项目或工程中的单独java文件---找不到或无法加载主类”错误的原因
- 《想在领导的前面》——在领导的思路里找机会
- VBA的表单控件初接触(2):ActiveX控件的基础功能和基础代码
- php数组教程,PHP 数组入门教程小结
- 按下删除键出现 ^H 乱码现象总结
- 【论文阅读笔记】Incremental Network Quantizatio:Towards Lossless CNNs with Low-Precision Weights
- matlab加停顿,求高手解释下这段程序,实在是搞不懂了,要死的节奏了。。。。...
- php twig if,twig基本语法
- MissionPlanner的固件下载模块
- EXCEL数据报表完成财务表格汇总数据查询
- 微机原理与接口技术思维导图
- 保护眼睛的电脑桌面颜色(推荐)
热门文章
- 今天手把手教你做一个Python版的迷宫小游戏
- 如何免费pdf全部转化为word版
- Times New Roman字体的历史
- 测试开发工作者日记:2020.6.10-6.11
- 南京信息工程大学计算机考研资料汇总
- CVE-2022-28512 Fantastic Blog CMS 1.0 版本存在SQL注入漏洞
- 南邮CTF-RE-Py交易
- excel删除无尽空白行_从0到1快速入门Excel透视表,看这一篇就够了
- SpringBoot应用监控(带邮件警报)
- php抢票程序,python并发编程多进程 模拟抢票实现过程