笔记总页面

负下标

有的时候我们需要存一些负的东西,比如我就只要一个 \(-1\),或者说值域是 \([-10^6,10^6]\),而我懒得写平移

(写平移不仅麻烦,而且万一忘了就会RE,并且在本地不一定会被检测出来)

那咋整呢?

取下标:a[i],它的本质是 *(a+i)

开一个pool,然后开一个指针a指向pool+1,就可以访问 a[-1] 了

关于二维数组:

二维数组事实上是把每一行串起来变成一维数组存储的

所以说,比如你开了一个 int a[10][10],访问 a[2][-1] 等价于 a[1][9]

然后我们只需要开一个 p,指向二维数组的一行;然后就可以访问 p[-1][-1] 这样的下标了

那么二维数组的“一行”,是什么类型呢?实际上,是 int (*p)[10] 的类型。也许你在传函数参数的时候就注意到了,传数组的时候,第一维可以不限,但是后面必须要限制。这里也是一样的。

int (*p)[10] 只是一个特例,你可以把 10 换成任意数,但是要保持和你开的第二维相同。另外,由于优先级问题,这里的括号不能省略。

以下是一个例子,使得你可以访问 a[-100~100][-100~100]

int pool[202][202];
int (*a)[200]=pool[101];

为什么要多开两个呢?注意到 a[100-100][-1] 是不被允许的,所以 a 必须指向第 101 行,此处要躲开一个;后面要访问到 a[101+100=201],而此时我们才开了 201 行,那肯定不行,所以要开到 202

在不造成太多浪费的情况下,多开一两个保安全还是不错的。

动态开点

固然可以写一个映射函数,如

#define id(x,y) (x-1)*m+y

事实上,为了好看,与节省空间,可以这样写

int id[N][N],tot=0;
for(int i=1;i<=n;++i) for(int j=1;j<=m;++j) id[i][j]=++tot;

也就是每次用 ++tot 来开点。这样更加的灵活,易懂(因为数组有名字)(当然函数也有名字,但是括号和中括号混合在一起闲的很乱,全都是中括号则很整齐)

节省空间是因为,有的时候你为了使映射函数好写,可能会浪费一些区间。

当然映射函数也有它的好处,比如数组开不下的时候映射函数就可以派上用场了。当然,为了可读性,也可以用map,如果必要。

花括号

不管是否换行与否,尽量不要省略花括号,如:

if (...) do_something

应该写作

if (...)
{
do_something;
}

尽管只是很简单的一句话。因为这样不费很多力气,而且方便后期加入功能,与调试。

而且看起来很整齐,强迫症狂喜

tricks - 实现的更多相关文章

  1. testng 教程之使用参数的一些tricks配合使用reportng

    前两次的总结:testng annotation生命周期 http://www.cnblogs.com/tobecrazy/p/4579414.html testng.xml的使用和基本配置http: ...

  2. (转) How to Train a GAN? Tips and tricks to make GANs work

    How to Train a GAN? Tips and tricks to make GANs work 转自:https://github.com/soumith/ganhacks While r ...

  3. Matlab tips and tricks

    matlab tips and tricks and ... page overview: I created this page as a vectorization helper but it g ...

  4. LoadRunner AJAX TruClient协议Tips and Tricks

    LoadRunner AJAX TruClient协议Tips and Trickshttp://automationqa.com/forum.php?mod=viewthread&tid=2 ...

  5. 【翻译】C# Tips & Tricks: Weak References - When and How to Use Them

    原文:C# Tips & Tricks: Weak References - When and How to Use Them Sometimes you have an object whi ...

  6. 神经网络训练中的Tricks之高效BP(反向传播算法)

    神经网络训练中的Tricks之高效BP(反向传播算法) 神经网络训练中的Tricks之高效BP(反向传播算法) zouxy09@qq.com http://blog.csdn.net/zouxy09 ...

  7. Hex-Rays Decompiler Tips and tricks Volatile memory

    https://www.hex-rays.com/products/decompiler/manual/tricks.shtml First of all, read the troubleshoot ...

  8. hdu 5276 YJC tricks time 数学

    YJC tricks time Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php?p ...

  9. 10 Interesting Linux Command Line Tricks and Tips Worth Knowing

    I passionately enjoy working with commands as they offer more control over a Linux system than GUIs( ...

  10. Git tricks: Unstaging files

    NOTE: Following content is directly reprinted from http://andrewberls.com/blog/post/git-tricks-unsta ...

随机推荐

  1. java中将信息写入excel

    //实体类 package com.cn.peitest.excel; import java.io.Serializable; /** * 员工基本信息 * * @author pei */ pub ...

  2. 看完这篇,保证让你真正明白:分布式系统的CAP理论、CAP如何三选二

    引言 CAP 理论,相信很多人都听过,它是指: 一个分布式系统最多只能同时满足一致性(Consistency).可用性(Availability)和分区容错性(Partition tolerance) ...

  3. 【代码周边】MongoDB与Mysql对比以及插入稳定性分析(指定主键的影响)

    在数据库存放的数据中,有一种特殊的键值叫做主键,它用于惟一地标识表中的某一条记录.也就是说,一个表不能有多个主键,并且主键不能为空值. 无论是MongoDB还是MySQL,都存在着主键的定义. 对于M ...

  4. Socket.io详解

    socket.io是一个跨浏览器支持WebSocket的实时通讯的JS. http://socket.io/docs/ 由于HTTP是无状态的协议,要实现即时通讯非常困难.因为当对方发送一条消息时,服 ...

  5. 毕大从自身设计HSF的角度出发谈服务化这回事

    服务化的过去.现在和未来 原创: bluedavy HelloJava  9月18日 服务化毫无疑问是技术圈一直火热的buzzword,而且其实已经非常多年了,这在日益更新的技术圈还挺神奇的,作为在服 ...

  6. Atcoder abc187 F Close Group(动态规划)

    Atcoder abc187 F Close Group 题目 给出一张n个点,m条边的无向图,问删除任意数量的边后,留下来的最少数量的团的个数(\(n \le 18\) ) 题解 核心:枚举状态+动 ...

  7. TurtleBot3 Waffle (tx2版华夫)(5)激活你的雷达

    重要提示:请在配网通信成功后进行操作,配网后再次开机需要重新验证通信: 重要提示:[Remote PC]代表PC端.[TurtelBot]代表树莓派端: 5.1.操作步骤 1)[Remote PC]  ...

  8. Java核心类

    Java核心类的学习: 常用类库 io流 集合 多线程 网络编程 调试与优化 XML和JSON 枚举.注解和反射 设计模式

  9. Java串口编程例子

    最近笔者接触到串口编程,网上搜了些资料,顺便整理一下.网上都在推荐使用Java RXTX开源类库,它提供了Windows.Linux等不同操作系统下的串口和并口通信实现,遵循GNU LGPL协议.看起 ...

  10. [每日一题]面试官问:for in和for of 的区别和原理?

    关注「松宝写代码」,精选好文,每日一题 ​时间永远是自己的 每分每秒也都是为自己的将来铺垫和增值 作者:saucxs | songEagle 一.前言 2020.12.23 日刚立的 flag,每日一 ...