(二维vector)(绝对值求和等式的处理)B. Playing in a Casino

简介: (二维vector)(绝对值求和等式的处理)B. Playing in a Casino

我的思路

把竖式排序,然后变成差分数组,用第一项来表示全部项;

自己没做过的做法,很难写对,正确性都没有成功验证,还得积累解题套路

思路

// 不是让数组保持原状竖着排序,顺时针转90度,n,m交换,然后再一行一行排序

// 列出表达式 s = |3-1| + |7-1| + |7-3|,绝对值的式子的处理,只要能把元素交换成大减小就可以忽略绝对值了。

// 把加的和减的拿出来看,加的个数从小到大是0,1,2,减的是2,1,0;

//

涉及的套路

1.数组旋转:

用途:目前见过 除了题目明确要求进行这个操作外,用于数组的纵向排序

向右旋转90度:

cin时ij倒转

for(int i= 0;i < n;i++){
  for(int j = 0;j < m;j++){
    cin >> f[j][i];
}

后续操作时n,m调换位置

将纵列换成横行后进行排序
for(int i = 0;i < m;i++) sort(f[i],f[i]+n);


for(int i = 0;i < m;i++){
  for(int j= 0;j < n;j++){
    cout << f[i][j];
  }
}
2.二维vector的初始化与使用

定义:

vector<vector<int> > f(n,vector<int> (m));
等价于
f[n][m];


好处在于,n,m在vector中可以为变量。

对于某些题给范围时给的是

n*m <= 5e5,

就不能用二维数组,只能用vector了

还有通过push_back()实现动态扩容


注意vector访问时下标从0开始

输入元素:

通过上面的定义方式定义后,可以直接通过下标来输入,使用方法同普通数组
for(int i = 0;i < n;i++){
  for(int j= 0;j < m;j++){
    cin >> f[i][j];
  }
}
如果只是
vector<vector<int> > f;
这样的定义,没有提前开辟内存的话
输入时要用pushback()
for(int i = 0;i < n;i++){
  for(int j= 0;j < m;j++){
    int x;
    cin >> x;
    f[i].pushback(x);
  }
}
目录
相关文章
|
存储 算法 编译器
【c 语言 】移位操作符详解
【c 语言 】移位操作符详解
956 0
deb官方源、国内源
deb官方源、国内源
1687 0
|
网络协议 安全 5G
网络与通信原理
【10月更文挑战第14天】网络与通信原理涉及众多方面的知识,从信号处理到网络协议,从有线通信到无线通信,从差错控制到通信安全等。深入理解这些原理对于设计、构建和维护各种通信系统至关重要。随着技术的不断发展,网络与通信原理也在不断演进和完善,为我们的生活和工作带来了更多的便利和创新。
437 58
|
资源调度 算法 Linux
Linux进程/线程的调度机制介绍:详细解析Linux系统中进程/线程的调度优先级规则
Linux进程/线程的调度机制介绍:详细解析Linux系统中进程/线程的调度优先级规则
3532 0
|
存储 安全 物联网
计算机网络的类型
本文介绍了网络的分类,涵盖按覆盖范围(PAN、LAN、MAN、WAN)、使用场景(公网、外网、内网)、传输介质(有线、无线)、特殊类型(VLAN、SAN、网络桥接、接入网)及拓扑结构(总线型、星型、树型、环型、网状型)和交换方式(电路交换、报文交换、分组交换)等,详细阐述了各类网络的特点和技术。
1115 2
|
人工智能 IDE API
灵动指尖 :阿里云智能编码插件 更好的为IDE内置社区服务
灵动指尖 :阿里云智能编码插件 更好的为IDE内置社区服务
1671 0
|
机器学习/深度学习 自然语言处理 算法
利用机器学习算法进行自动化测试
利用机器学习算法进行自动化测试
|
运维 监控 Linux
"熬夜达人揭秘:Linux系统崩溃前夜,如何用这几行代码救局?监控与排查全攻略!"
【8月更文挑战第19天】作为常需熬夜的系统管理员,面对Linux系统问题时,我总结了一套实用的监控与排查方法。通过使用`top`监控CPU使用率、`free`检查内存状况、`iostat`监测磁盘I/O、及`iftop`观察网络流量,结合`ps`、`pmap`和`strace`等工具深入分析,可有效识别并解决系统瓶颈,减少故障处理时间,保障系统稳定运行。
183 0
|
安全 Linux Shell
runcon命令简介及用途
`runcon`是Linux的SELinux工具,用于在特定安全上下文中运行命令,加强进程权限控制。它允许管理员改变进程的安全上下文,提高安全性,隔离环境,并满足安全标准。命令参数如`-u`(用户),`-r`(角色),`-t`(类型)指定上下文。示例包括以非特权用户身份或特定上下文运行命令。使用时需注意确保SELinux启用,正确指定上下文,并遵循最小权限原则和定期审计。
|
SQL 安全 API