- 博客(7)
- 收藏
- 关注
原创 树状数组
树状数组可以在O(logn)的时间复杂度内求出前缀和||插入一个数 树状数组的三种基本模板 区间查询+单点修改 将a[i]最为树状数组中的每个元素 题目链接 #include<iostream> #include<cstdio> using namespace std; int n,m; const int N=1000010; int tr[N]; int lowbit(int x){ return x&-x; } void add(int x,int v
2020-08-30 17:03:09 63
原创 贪心训练日记
1.陶陶摘苹果luoguP1478 贪心 贪心假设:在所有可以摘到的苹果中,优先选择需要力气小的苹果。 贪心证明:因为要求的是共能摘多少个苹果,所以我们可以将每个苹果的价值都视为1。那么无论是摘比较费劲的苹果还是比较省力的苹果所得到的价值都是一样的。但如果摘比较省力的苹果,就可以留下更多的力气去摘其他的苹果。 #include<iostream> #include<algorithm> using namespace std; const int N=5100; int n; int
2020-08-24 15:46:52 115
原创 noip中的那些鲜为人知的“常识“
在看题解时,我们经常会看到这样一句话:大家应该都知道……,众所周知……,但对于我这种蒟蒻,大佬眼们中的常识,到我这里仿佛比高级算法还难,大多都是听都没听过。 所以,本蒟蒻决定总结一下那些鲜为人知的"常识",让自己不断变强。 持续更新 1.两个数的积=它们的最大公约数和最小公倍数的积。 2.一个序列最少可以用多少个下降子序列拼出来=这个序列最长上升子序列的长度 3.八数码问题中如果逆序对的数量是奇数,那么一定无解。所有的奇数码问题中,如果逆序对的数量时奇数,那么一定无解。 4.偶数码问题中,如果空格到当前目
2020-08-21 18:03:54 154
原创 lgP1146 硬币反转
一道经典的规律题: 仔细想一次反转n-1个数,和一次反转一个数实际上时等价的。 #include<iostream> using namespace std; int n; const int MAX=110; bool vt[MAX]; int a[MAX]; int main(){ cin>>n; cout<<n<<endl; for (int i=1;i<=n;i++){ for (int j=1;j<=n;j++){ i
2020-08-16 15:32:57 90
原创 BFS之flood_fill模型
xa1249:Lake Counting #include<cstdio> #include<iostream> using namespace std; typedef pair<int ,int > PII; int n,m; const int MAX=210; char g[MAX][MAX]; PII q[MAX*MAX]; int mx[8]={-1,-1,-1,0,0,1,1,1}; int my[8]={-1,0,1,-1,1,-1,0,1}; voi
2020-08-05 17:37:06 172
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人