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)相关推荐

  1. Codeforces Global Round 23 E CF1746E Joking (Hard Version)

    题意 互动题 你需要猜一个数 范围e5 询问在不在数集中 限最多52次 猜测是不是某个数 最多两次 其中询问反馈你的答案未必是对的,只保证2次连续询问至少有一次是对的 猜测都是对的 思路 对同一个数集 ...

  2. codeforces global round 23

    constest :codeforces global round 23 contest time:2022.10.16 contest grade: 2800 contest rating chan ...

  3. Codeforces Global Round 1 晕阙记

    Codeforces Global Round 1 晕阙记 我做这场比赛的时候晕得要死.做这三道题做太久了,rating涨不起来啊! A 如果愿意的话你可以看做是膜2意义下的运算,写快速幂等各种膜运算 ...

  4. Codeforces Global Round 3

    Codeforces Global Round 3 A. Another One Bites The Dust 有若干个a,有若干个b,有若干个ab.你现在要把这些串拼成一个串,使得任意两个相邻的位置 ...

  5. Codeforces Global Round 14 F. Phoenix and Earthquake 思维 + 并查集

    传送门 文章目录 题意: 思路: 题意: 给你nnn个点,mmm条边,限制xxx,每个点都有沥青aia_iai​,定义合并两个点即两点之间有边且au+av≥xa_u+a_v\ge xau​+av​≥x ...

  6. Codeforces Global Round 1

    Codeforces Global Round 1 题解:The Editorial of the First Codeforces Global Round A:其实mod 2计算一下就行了 B:删 ...

  7. 【Codeforces Global Round 23】B. Rebellion

    Codeforces Global Round 23中B. Rebellion Codeforces比赛记录 文章目录 题目链接: 一.B. Rebellion 题目意思: 上思路: 总结 B. Re ...

  8. Codeforces Global Round 4-D. Prime Graph(伯特兰-切比雪夫定理)

    题目:Codeforces Global Round 4-D. Prime Graph 题意:给出n(顶点的个数),要求所得图满足: 1.无平行边和自环 2.边的总数是个质数 3.每个点的度(也就是点 ...

  9. Codeforces Beta Round #16 (Div. 2 Only)【未完结】

    2022.3.9 题目地址:https://codeforces.com/contest/16 目录 A. Flag[模拟] B. Burglar and Matches[贪心] C. Monitor ...

  10. Codeforces Global Round 23 C. Permutation Operations

    赛时随便写了个做法,看standing,发现很多人的做法也是很奇特 赛后看了官方题解..翻译下 题意: 每次可以给一个任意的后缀里的所有数 + i +i +i 执行n次. 使得逆序对最少. 思路: t ...

最新文章

  1. 免除重装系统的烦恼,为SSD做系统移植,并从光驱位SSD启动系统
  2. Ext JS 6学习文档-第3章-基础组件
  3. SpringBoot高级消-息-RabbitMQ基本概念简介
  4. 360浏览器打不开微信的连接服务器,上午还能打开,下午360浏览器打不开微信公 – 手机爱问...
  5. python 轮廓矩阵_python – 在3D numpy矩阵中绘制给定值的曲面轮廓
  6. 十进制转化为二进制_使用Windows 10内置计算器,将十进制数快速转换为二进制数,试试...
  7. jsp mysql模板_jsp的分页查询的代码(mysql数据库)
  8. 02.XMemcached的使用
  9. 如何运行项目或工程中的单独java文件---找不到或无法加载主类”错误的原因
  10. 《想在领导的前面》——在领导的思路里找机会
  11. VBA的表单控件初接触(2):ActiveX控件的基础功能和基础代码
  12. php数组教程,PHP 数组入门教程小结
  13. 按下删除键出现 ^H 乱码现象总结
  14. 【论文阅读笔记】Incremental Network Quantizatio:Towards Lossless CNNs with Low-Precision Weights
  15. matlab加停顿,求高手解释下这段程序,实在是搞不懂了,要死的节奏了。。。。...
  16. php twig if,twig基本语法
  17. MissionPlanner的固件下载模块
  18. EXCEL数据报表完成财务表格汇总数据查询
  19. 微机原理与接口技术思维导图
  20. 保护眼睛的电脑桌面颜色(推荐)

热门文章

  1. 今天手把手教你做一个Python版的迷宫小游戏
  2. 如何免费pdf全部转化为word版
  3. Times New Roman字体的历史
  4. 测试开发工作者日记:2020.6.10-6.11
  5. 南京信息工程大学计算机考研资料汇总
  6. CVE-2022-28512 Fantastic Blog CMS 1.0 版本存在SQL注入漏洞
  7. 南邮CTF-RE-Py交易
  8. excel删除无尽空白行_从0到1快速入门Excel透视表,看这一篇就够了
  9. SpringBoot应用监控(带邮件警报)
  10. php抢票程序,python并发编程多进程 模拟抢票实现过程