0%

语法问题

一些C++的语法问题

https://codeforces.com/blog/entry/15643

scanf

scanf("%c",&c); 可以输入换行符
scanf("%s",s+1); 不会读取换行符

1
2
3
4
5
pair<int,int> p;
p = {3,4};

vector<int>v;
v = {3,4,5,6};

tuple

1
2
3
4
tuple<int,int,int> t;
t = {1,2,3};
int x = get<1>(t);
cout<<x<<endl;

builtin

1
2
3
int x = __builtin_ffs(16);//返回最低位1的位置
int y = __builtin_ctz(16);//返回尾0的个数
int z = __builtin_popcount(x);//返回1的个数

Output

1
2
3
for(i = 1; i <= n; i++)
for(j = 1; j <= m; j++)
cout << a[i][j] << " \n"[j == m];

pow

今天long long范围内调用了pow函数,然后WA了

改成这样就过了,待解决

1
2
3
4
5
6
7
ll p(ll a,ll b){
ll ans = 1;
for(ll i=1;i<=b;i==){
ans*=a;
}
return ans;
}

vector<vector>

1
vector<vector<int>> pre(m, vector<int>(n + 1));

相当于开了一个int pre[m][n+1]的数组,但是不会MLE(n105\sum n \leq {10}^5)

反正是动态的