int函数

定义一个数组,用函数交换数组中的两个元素(C语言)

怎甘沉沦 提交于 2020-03-08 14:29:13
定义一个数组,用函数交换数组中的两个元素 # include <stdio.h> void swap ( int * a , int * b ) ; int main ( void ) { int Array [ ] = { 1 , 2 , 3 , 4 , 5 } ; swap ( Array + 1 , Array + 3 ) ; for ( int i = 0 ; i < 5 ; i ++ ) { printf ( "%d " , Array [ i ] ) ; } } void swap ( int * a , int * b ) { int temp ; temp = * a ; * a = * b ; * b = temp ; } 区分概念: *a : 是地址里的 值 Array+n:数组中 第 n 个 元素的 地址 &Array+n: 跨越 n 个 数组长度的 地址 区分 Array+n 和 &Array+n int Array [ ] = { 1 , 2 , 3 , 4 , 5 } ; /*定义一个数组*/ printf ( "%p\n" , Array ) ; /*Array的地址*/ printf ( "%p\n" , Array + 1 ) ; /*Array+1的地址*/ printf ( "%p\n" , & Array ) ; /*&Array的地址*/

Linux父子进程

帅比萌擦擦* 提交于 2020-03-08 13:04:00
一、fork函数   Linux系统中创建进程需要消耗较大资源,所以使用fork函数生成一个子进程,子进程的PCB(进程控制块)会复制父进程的数据! #include <sys/types.h> #include <unistd.h> #include <stdio.h> int main(int argc, char const *argv[]) { printf("%d\n", getppid()); pid_t p1 = fork(); if(p1 > 0) {          //父进程 printf("parent pid = %d, p1 = %d\n", getpid(), p1); } else {          //子进程 printf("son pid = %d , ppid = %d, p1 = %d\n", getpid(), getppid(), p1); } return 0; }   这是fork的简单应用,在运行fork()就生成了了一个子进程,父子进程运行的代码是相同的!fork之后的代码在两个进程中运行!    所以fork函数会在父子进程中分别返回,在父进程中返回子进程的pid,而在子进程中会返回0!所以可以根据判断在父子进程中运行不同的代码! 二、僵尸进程和孤儿进程   在进程结束后,Linux系统会自动回收进程消耗的 内存和IO

115资源高清定制97601048薇█

。_饼干妹妹 提交于 2020-03-08 12:23:26
97601048薇█数据结构-线段树 参考资料 暂无 线段树是所有 RMQ 中最常用的数据结构。 功能:区间修改区间查询。不止最值、求和。只要可递推的值都可以构造线段树。 如果区间大小为 n,线段树有 cnt 个节点,那么 2n−1≤cnt<4n。 节点 对于每个节点 x,和堆类似,父亲节点为 x>>1(即 x/2 下取整的位运算方法,位运算方便而且快),左儿子为 x<<1(即 2x),右儿子为 x<<1|1(即 2x+1)。 同时每个节点对应一段区间,所以叫线段树。节点 1 对应的区间为 1∼n。设一个节点对应的区间为 l∼r,那么它的左儿子对应的区间就是 l∼mid,其中 mid=(l+r)>>1,右儿子区间为 mid+1∼r。如果一个节点对应单点区间,就没有儿子。 同时每个节点对应一个值,即该区间的 RMQ 值。如果是求最值问题,就表示该区间最大值;如果是求和问题,就表示该区间的和。 操作(单点修改区间查询) 一个线段树是求和还是求最值或者求别的东西,取决于 pushup(k) 函数,其中 k 为节点编号,时间复杂度 O(1)。 void pushup(int k){v[k]=max(v[k<<1],v[k<<1|1]);}//求最大值 根据原序列构造初始的线段树用 build() 函数,单点节点上的值就为单点的值,递归从下到上构造,时间复杂度 O(nlogn)。 void

高清115资源伽97601048薇█

偶尔善良 提交于 2020-03-08 12:21:32
97601048薇█数据结构-线段树 参考资料 暂无 线段树是所有 RMQ 中最常用的数据结构。 功能:区间修改区间查询。不止最值、求和。只要可递推的值都可以构造线段树。 如果区间大小为 n,线段树有 cnt 个节点,那么 2n−1≤cnt<4n。 节点 对于每个节点 x,和堆类似,父亲节点为 x>>1(即 x/2 下取整的位运算方法,位运算方便而且快),左儿子为 x<<1(即 2x),右儿子为 x<<1|1(即 2x+1)。 同时每个节点对应一段区间,所以叫线段树。节点 1 对应的区间为 1∼n。设一个节点对应的区间为 l∼r,那么它的左儿子对应的区间就是 l∼mid,其中 mid=(l+r)>>1,右儿子区间为 mid+1∼r。如果一个节点对应单点区间,就没有儿子。 同时每个节点对应一个值,即该区间的 RMQ 值。如果是求最值问题,就表示该区间最大值;如果是求和问题,就表示该区间的和。 操作(单点修改区间查询) 一个线段树是求和还是求最值或者求别的东西,取决于 pushup(k) 函数,其中 k 为节点编号,时间复杂度 O(1)。 void pushup(int k){v[k]=max(v[k<<1],v[k<<1|1]);}//求最大值 根据原序列构造初始的线段树用 build() 函数,单点节点上的值就为单点的值,递归从下到上构造,时间复杂度 O(nlogn)。 void

卖115资源的微信号

假装没事ソ 提交于 2020-03-08 12:11:49
数据结构-线段树 参考资料 暂无 线段树是所有 RMQ 中最常用的数据结构。 功能:区间修改区间查询。不止最值、求和。只要可递推的值都可以构造线段树。 如果区间大小为 n,线段树有 cnt 个节点,那么 2n−1≤cnt<4n。 节点 对于每个节点 x,和堆类似,父亲节点为 x>>1(即 x/2 下取整的位运算方法,位运算方便而且快),左儿子为 x<<1(即 2x),右儿子为 x<<1|1(即 2x+1)。 同时每个节点对应一段区间,所以叫线段树。节点 1 对应的区间为 1∼n。设一个节点对应的区间为 l∼r,那么它的左儿子对应的区间就是 l∼mid,其中 mid=(l+r)>>1,右儿子区间为 mid+1∼r。如果一个节点对应单点区间,就没有儿子。 同时每个节点对应一个值,即该区间的 RMQ 值。如果是求最值问题,就表示该区间最大值;如果是求和问题,就表示该区间的和。 操作(单点修改区间查询) 一个线段树是求和还是求最值或者求别的东西,取决于 pushup(k) 函数,其中 k 为节点编号,时间复杂度 O(1)。 void pushup(int k){v[k]=max(v[k<<1],v[k<<1|1]);}//求最大值 根据原序列构造初始的线段树用 build() 函数,单点节点上的值就为单点的值,递归从下到上构造,时间复杂度 O(nlogn)。 void build(int

115网盘资源更新

六月ゝ 毕业季﹏ 提交于 2020-03-08 12:02:37
数据结构-线段树 参考资料 暂无 线段树是所有 RMQ 中最常用的数据结构。 功能:区间修改区间查询。不止最值、求和。只要可递推的值都可以构造线段树。 如果区间大小为 n,线段树有 cnt 个节点,那么 2n−1≤cnt<4n。 节点 对于每个节点 x,和堆类似,父亲节点为 x>>1(即 x/2 下取整的位运算方法,位运算方便而且快),左儿子为 x<<1(即 2x),右儿子为 x<<1|1(即 2x+1)。 同时每个节点对应一段区间,所以叫线段树。节点 1 对应的区间为 1∼n。设一个节点对应的区间为 l∼r,那么它的左儿子对应的区间就是 l∼mid,其中 mid=(l+r)>>1,右儿子区间为 mid+1∼r。如果一个节点对应单点区间,就没有儿子。 同时每个节点对应一个值,即该区间的 RMQ 值。如果是求最值问题,就表示该区间最大值;如果是求和问题,就表示该区间的和。 操作(单点修改区间查询) 一个线段树是求和还是求最值或者求别的东西,取决于 pushup(k) 函数,其中 k 为节点编号,时间复杂度 O(1)。 void pushup(int k){v[k]=max(v[k<<1],v[k<<1|1]);}//求最大值 根据原序列构造初始的线段树用 build() 函数,单点节点上的值就为单点的值,递归从下到上构造,时间复杂度 O(nlogn)。 void build(int

四种GCC内置位运算函数

我们两清 提交于 2020-03-08 10:18:00
int __builtin_ffs (unsigned int x) 返回x的最后一位1的是从后向前第几位,比如7368(1110011001000)返回4。 int __builtin_clz (unsigned int x) 返回前导的0的个数。 int __builtin_ctz (unsigned int x) 返回后面的0个个数,和__builtin_clz相对。 int __builtin_popcount (unsigned int x) 返回二进制表示中1的个数。 int __builtin_parity (unsigned int x) 返回x的奇偶校验位,也就是x的1的个数模2的结果。 此外,这些函数都有相应的usigned long和usigned long long版本,只需要在函数名后面加上l或ll就可以了,比如int __builtin_clzll。 vs版 int builtin_clz(unsigned int type)//返回前导的0的个数 { int num = 0; type |=1; //防止type为0时,出现无限循环infinite loop,type为0时的计算结果为31。 while(!(type & 0x80000000)) //检测最高位是不是1。 { num +=1; type <<= 1; } return num; }

高效位运算 __builtin_系列函数

橙三吉。 提交于 2020-03-08 10:07:10
•int __builtin_ffs (unsigned int x) 返回x的最后一位1的是从后向前第几位,比如7368(1110011001000)返回4。 •int __builtin_clz (unsigned int x) 返回前导的0的个数。 •int __builtin_ctz (unsigned int x) 返回后面的0个个数,和__builtin_clz相对。 •int __builtin_popcount (unsigned int x) 返回二进制表示中1的个数。 •int __builtin_parity (unsigned int x) 返回x的奇偶校验位,也就是x的1的个数模2的结果。 此外,这些函数都有相应的usigned long和usigned long long版本,只需要在函数名后面加上l或ll就可以了,比如int __builtin_clzll。 来源: https://www.cnblogs.com/zxz666/p/11188763.html

codeforces gym 100803G Flipping Parentheses 线段树

老子叫甜甜 提交于 2020-03-08 09:59:24
https://vjudge.net/contest/285175#problem/J 题目大意:给一个只包含 “ ( ” “(” “ ( ” 和 “ ) ” “)” “ ) ” 的字符串 s s s ,且保证它是平衡的(就是括号匹配的意思)。然后有 q q q 个询问,第 i i i 次询问把 s [ q i ] s[q_i] s [ q i ​ ] 进行翻转,让你求出最小的下标 p o s pos p o s ,使得翻转 s [ p o s ] s[pos] s [ p o s ] 后,字符串 s s s 的括号依然是平衡的。 思路:假设 “ ( ” “(” “ ( ” 的值为 1 1 1 , “ ) ” “)” “ ) ” 的值为 − 1 -1 − 1 ,那么我们就把字符串 s s s 变成了数的序列,用线段树维护这个序列的前缀和,以 ( ( ( ) ) ) ((())) ( ( ( ) ) ) 为例,它每个位置的值分别为 1 、 2 、 3 、 2 、 1 、 0 1、2、3、2、1、0 1 、 2 、 3 、 2 、 1 、 0 。然后考虑翻转操作,若 s [ q i ] = “ ( ” s[q_i]=“(” s [ q i ​ ] = “ ( ” ,对其进行翻转,相当于把区间 [ q i , n ] [q_i,n] [ q i ​ , n ] 的值都减去 2 2 2

剑指Offer题解(持续更新)

送分小仙女□ 提交于 2020-03-08 09:12:33
文章目录 第2️⃣章 03 | [数组中重复的数字](https://leetcode-cn.com/problems/shu-zu-zhong-zhong-fu-de-shu-zi-lcof/) 问题描述 解题思路 代码 其他方法分析 若果不允许修改数组呢?(二分法,详情见书,时间复杂度O(nlogn)) 04 | [二维数组中的查找](https://leetcode-cn.com/problems/er-wei-shu-zu-zhong-de-cha-zhao-lcof/) 问题描述 解题思路 代码 09 | [用两个栈实现队列](https://leetcode-cn.com/problems/yong-liang-ge-zhan-shi-xian-dui-lie-lcof/) 问题描述 解题思路 代码 相关题目-225. [用两个队列实现栈](https://leetcode-cn.com/problems/implement-stack-using-queues/) 15 | [二进制中1的个数](https://leetcode-cn.com/problems/er-jin-zhi-zhong-1de-ge-shu-lcof/) 问题描述 解题思路 代码 第3️⃣章 第4️⃣章 30 | [ 包含min函数的栈](https://leetcode-cn.com