#define _clr(x) memset(x,0xff,sizeof(int)*n) 是啥意思?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了#define _clr(x) memset(x,0xff,sizeof(int)*n) 是啥意思?相关的知识,希望对你有一定的参考价值。
如题!谢谢!
sizeof(int)*n 主要是这个 sizeof(int)我知道 后面的*n 是什么意思
如果是乘n的意思 那么n是什么?
,memset(x,0xff,sizeof(int)*n)是_clr(x)展开后的样子。这是个宏定义而已。
memset的函数原型是: void *memset(void *s, char ch, unsigned n);
n是一个无符号整数,sizeof(int)是int的字节数,*n就是和n相乘。memset是将由参数一指定位置的内存置为第二个参数指定的ascii码,长度由第三个参数决定
程序写全点,不知道n是否是定义过的常量 参考技术A 宏定义
AcWing 126. 最大的和
很经典的题。
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<int,int> pii;
#define pb push_back
#define fi first
#define se second
#define mem(a,x) memset(a,x,sizeof(a));
#define db double
#define fir(i,a,n) for(int i=a;i<=n;i++)
//======================
//参考:https://www.acwing.com/solution/content/4127/
const int N=105;
int a[N][N],s[N][N];
int n;
int ans=-0x3f3f3f3f;
int main()
{
cin>>n;
fir(i,1,n)
{
fir(j,1,n)
{
cin>>a[i][j];
a[i][j]+=a[i-1][j];//这一列的前缀和
}
}
//枚举边界
fir(i,1,n)
{
fir(j,i,n)//枚举排,两排之间
{
int t=0;
fir(k,1,n)//列
{
t=max(t,0)+a[j][k]-a[i-1][k];//如果上一个t是负数,就不带它
ans=max(ans,t);
}
}
}
cout<<ans;
return 0;
}
以上是关于#define _clr(x) memset(x,0xff,sizeof(int)*n) 是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章
宏字符串:#define __T(x) x 是啥意思?和 __T(#x)?