小技巧
1. 优先队列
想重载自带的类型的比较方式,但是又不想重载运算符怎么办?
答:
#include<bits/stdc++.h>
using namespace std;
struct cmp{
bool operator()(int x,int y)const{
return x<y;//大根堆
// return x>y;//小根堆
}
};
priority_queue<int,vector<int>,cmp>q;
int n=10;
int main()
{
srand(time(NULL));
for(int i=1;i<=n;i++) q.push(rand());
while(n--) printf("%d\n",q.top()),q.pop();
return 0;
}
2. 快捷的坐标:
\(dp(x,y)\)。
#include<bits/stdc++.h>
using namespace std;
int _dp[1005][1005];
inline int &dp(int x,int y){return _dp[x][y];}
int main()
{
dp(1,1)=1;
cout<<dp(1,1)<<" "<<_dp[1][1]<<'\n';
return 0;
}