- 博客(8)
- 收藏
- 关注
原创 poj1067博弈论
题目:有 两堆石子,数量任意,可以不同。游戏开始由两个人轮流取石子。游戏规定,每次有两种不同的取法,一是可以在任意的一堆中取走任意多的石子;二是可以在两堆 中同时取走相同数量的石子。最后把石子全部取完者为胜者。现在给出初始的两堆石子的数目,如果轮到你先取,假设双方都采取最好的策略,问最后你是胜者还是 败者。 Input 输入包含若干行,表示若干种石子的初始情况,其中每一行包含两个非负整数a和b,表...
2020-02-03 15:59:31 289
原创 单调栈
单调栈就是一个元素递增(或递减)的栈。 一个单调递增的单调栈可以在O(n)的复杂度内求得序列内一个元素向左或向右第一个小于等于该元素的元素位置。 比如该序列为1,5,2,6,4,3 1进栈,栈内无元素,L1=0 (1) 5进栈,无出栈,L2=1(栈顶元素) (1,5) 2进栈,5出栈,R2(出栈元素)=3(当前元素),L3=1 (1,2) 6进栈,无出栈,L4=3 (1,2,6) 4进栈,...
2020-02-03 15:58:56 108
原创 Atcode
B n-k+1 #include<iostream> using namespace std; int main(){ int n,k; cin>>n>>k; if(n<k) cout<<"0"<<endl; else cout<<n-k+1<<endl; } C #include<iostr...
2019-11-22 17:05:48 758
原创 大数乘法取模
ll pc(ll a,ll b,ll mod) { ll ans=0; for(;b;b>>=1) { if(b&1) { ans=ans+a%mod; } a=a*2%mod; } return ans%mod; }
2019-11-20 20:06:31 247
原创 大数相加C++
string bigsum(string s1,string s2,string sum) { if(s1.size()<s2.size()) { string temp=s1; s1=s2; s2=temp; } int len=s1.size()-s2.size(); string s3=(len,'0'); s2=s3+s2; int a=0; for(int i=s1...
2019-11-15 16:57:50 126
原创 快读
由于读入字符的速度比读入数字快得多,所以可以将数字看做一个字符串 inline int read(){ int x=0,f=1; char ch=getchar(); while(ch<'0'||ch>'9'){ if(ch=='-') f=-1; ch=getchar(); } while(ch>='0'&&ch<='9') { x=...
2019-11-14 22:04:43 105
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人