基础算法2(快速幂,二分)
发现了一些快速幂上的小问题,可以说很细节的问题了,导致我第一题巨水的一道题wrong了5次!!当时都懵了,感觉代码一点毛病都没有🐷(菜是原罪)
把这次我在快速幂模板上踩的坑说一下,看下面两段代码
12345678910111213141516代码一ll qpow(ll a,ll b){ if(b==0) return 1; ll ans=qpow(a,b>>1)%MOD; ans*=ans%MOD; if(b&1) ans*=a%MOD; return ans%MOD;}代码二ll qpow(ll a,ll b){ if(b==0) return 1; ll ans=qpow(a,b>>1)%MOD; ans=ans*ans%MOD; if(b&1) ans=ans*a%MOD; return ans%MOD;}
看着这两段代码没啥区别,就是把ans=ans*ans改成了ans*=ans,如果没有取模的话这俩没有任何区别,但是一旦取模就是AC和wrong的天壤之别,为什么?首先看ans*=an ...
PPT上例题(含倍增)
PPT上面的好多题都做不了,ACWING上的题要报名才能做,Codeforces 1000C搜不出来,就做了剩下的,不过二维差分前缀和早就掌握了
ACWING-797. 差分超级模板
Code123456789101112131415161718192021#include<bits/stdc++.h>using namespace std;const int MAXN=1e5+100;int val[MAXN],cha[MAXN];int main(){ int n,m; cin>>n>>m; for(int i=1;i<=n;i++) cin>>val[i]; while(m--){ int l,r,c; cin>>l>>r>>c; cha[l]+=c; cha[r+1]-=c; } for(int i=1;i<=n;i++){ cha[i]+=cha[i-1]; if(i!=n) cout<<val[i]+cha[i] ...
基础算法练习
A 前M大的数暴力累加每两组数,再排序输出前M个1234567891011121314151617181920212223242526272829#include<cstdio>#include<set>#include<iostream>#include<algorithm>#define ios ios::sync_with_stdio(0);cin.tie(0);cout.tie(0) using namespace std;const int MAXN=3e3+100;int v1[MAXN],v2[5000000];int main(){// ios; int n,m; while(scanf("%d %d",&n,&m)!=EOF){ for(int i=1;i<=n;i++) cin>>v1[i]; int tail=0; for(int i=1;i<n;i++){ for(int j=i+1;j<=n;j++)& ...
水果
题目
F - 水果
夏天来了~好开心啊,呵呵,好多好多水果~
Joe经营着一个不大的水果店.他认为生存之道就是经营最受顾客欢迎的水果.现在他想要一份水果销售情况的明细表,这样Joe就可以很容易掌握所有水果的销售情况了.
Input
第一行正整数N(0
codeforces div4
唯一一场每道题都有思路的比赛,感觉还行,虽然有思路不代表能AC,不过还是很开心的,因为除了E题的桶没想到外其他都是自力更生做出来的😊
A Sum of Round Numbers分析签到题,就是遍历数的每一位,求出非0的位数有几位,然后int一个v=1,之后没走一个数v*=10,然后当一位数不等于0时就乘上v就行了,这道题用字符串应该更简单,但是我想试试用while,练练手
CODE123456789101112131415161718192021222324252627282930#include<stdio.h>#include<iostream>#include<algorithm>#include<string.h>#define ios ios::sync_with_stdio(0)using namespace std;const int MAXN=1e4+100;int main(){ ios; int t,k; cin>>t; while(t--){ cin>>k; ...
全排列问题
STL next_permutation函数实现原文链接掌握了next_permutation函数的原理:smile:12345678910111213141516171819202122void inline swap(char *s1,char *s2){ char t=*s1; *s1=*s2; *s2=t;}/***反转字符串函数,s,e分别执行字符串的开始和结尾,不能反转中文 **/void reverse(char *s,char* e){ for(e--;s<e;s++,e--)swap(s,e);}bool next_permutation(char *start,char *end){ char *cur = end-1, *pre=cur-1; while(cur>start && *pre>=*cur)cur--,pre--; if(cur<=start)return false; for(cur=end-1;*cur& ...
简单三维DFS搜索
题目problem link可怜的公主在一次次被魔王掳走一次次被骑士们救回来之后,而今,不幸的她再一次面临生命的考验。魔王已经发出消息说将在T时刻吃掉公主,因为他听信谣言说吃公主的肉也能长生不老。年迈的国王正是心急如焚,告招天下勇士来拯救公主。不过公主早已习以为常,她深信智勇的骑士LJ肯定能将她救出。现据密探所报,公主被关在一个两层的迷宫里,迷宫的入口是S(0,0,0),公主的位置用P表示,时空传输机用#表示,墙用表示,平地用.表示。骑士们一进入时空传输机就会被转到另一层的相对位置,但如果被转到的位置是墙的话,那骑士们就会被撞死。骑士们在一层中只能前后左右移动,每移动一格花1时刻。层间的移动只能通过时空传输机,且不需要任何时间。Input输入的第一行C表示共有C个测试数据,每个测试数据的前一行有三个整数N,M,T。 N,M迷宫的大小NM(1 <= N,M <=10)。T如上所意。接下去的前NM表示迷宫的第一层的布置情况,后NM表示迷宫第二层的布置情况。Output如果骑士们能够在T时刻能找到公主就输出“YES”,否则输出“NO”。Sample Input15 5 14S#. ...
数状数组求逆序对&&二维树状数组
参考原文:
二维树状数组我们先来讲讲怎么去表示。数组A[][]的树状数组定义为:
C[x][y] = ∑ a[i][j], 其中,x-lowbit(x) + 1 <= i <= x,y-lowbit(y) + 1 <= j <= y.
例:举个例子来看看C[][]的组成。设原始二维数组为:1234A[][]={{a11,a12,a13,a14,a15,a16,a17,a18,a19}, {a21,a22,a23,a24,a25,a26,a27,a28,a29}, {a31,a32,a33,a34,a35,a36,a37,a38,a39}, {a41,a42,a43,a44,a45,a46,a47,a48,a49}};那么它对应的二维树状数组C[][]呢?
记:B[1]={a11,a11+a12,a13,a11+a12+a13+a14,a15,a15+a16,…} 这是第一行的一维树状数组B[2]={a21,a21+a22,a23,a21+a22+a23 ...
数学问题模板
筛选质因子1234567 for(int i=2;i*i<=k;i++){ if(k%i==0){ p[++tail]=i; //p就是储存质因子的数组 while(k%i==0) k/=i; //把k中所有i的质因子全部除去 }} if(k>1) p[++tail]=k;
判断是否为质数123456789bool isp(int n){ if(n==1||n==0) return 0; if(n==2||n==3) return 1; if(n%6!=1&&n%6!=5) return 0; for(int i=5;i*i<=n;i+=6){ if(n%i==0||n%(i+2)==0) return 0; } return 1;}
容斥原理前言:
计算1-n中m的的倍数的数量时,直接n/m
容斥原理是在互质的数的基础上实现的公式:
(A+B+C+D+E……)-(AB+AC+AD……+BC+BD)+(ABC+B ...
如何给Hexo博客添加说说页面
前言
本文已经过期,说说已经更名为artitalk具体百度
最近看了许多大佬的博客,终于明白了我到底有多弱:weary:,不过虽然我菜,但是Chinese还是能看懂的:grin:,直接按照教程往下走,感谢把我教会的原文1和原文2
看看效果吧:
这个和QQ空间里面的说说类似,用来记录自己的生活以及心情都挺好的,请忽略内容里面的表情符号:sleeping:我太菜了,这些原本是要被转成表情的,但说说页面好像不支持,/手动流汗/,如果哪位大佬看到了这篇文章,祈求您留言指教我
好了,废话少说,正文开始:
步骤1.在themes\sakura\languages\zh-cn.yml中增添定义:
shuoshuo: 说说
2.修改导航栏,位置:themes\sakura_config.yml增添:
说说: {path: /shuoshuo/, fa: fa-commenting-o fa-commenting }
这里需要注意的是如果你的说说是添加在导航栏的子页面的,比如说在归档里面,那么需要在最后添加逗号( , )
3.在博客主目录下新建目录:
hexo new page ...