The 2015 "Orz Panda" Cup Programming Contest
The 2015 "Orz Panda" Cup Programming Contest
集训后的第一次比较正式的组队赛,这次比之前的pk赛和省赛要好多了,之前真是一片狼藉,惨不忍睹啊。。
比赛一开始,onlyAzha就发现了K题这个签到题,马上上去敲了,很快1A。接着是我的E题,矩阵快速幂,uva的原题,也很快就过了。看了一下榜,我们队两题遥遥领先,其他队还没出题。接着是onehxrn的H题,以为是个水题,交上去WA,然后我去调了一下也没过,于是我们决定先过J题,J题是判断点在三角形里,按onehxrn的思路叉积判断一下就行了,交上去WA了一次,队友帮调了一下,很快过了,这时我们队已经三题了,其他队最多才1题。然后是onehxrn在调H题,我和onlyAzha看别的题,我先看的B题,想了一下,没找到规律。onehxrn发现H题意看错了,onlyAzha也发现了F水题,很快我们过了F,刷了一下榜,我们队4题,还是rank1,但是很多队都过了G,于是我们决定开G题,开G题之前效率很高,每个人一题,很快就过了四题,到了G题真是一片混乱啊。。反而是开G题的过程中onehxrn居然过了H。。然后三个人一起写G题,G题是个dp,三个人调两份代码,WA了很多次之后给onlyAzha的代码随便加了排序,交上去居然过了。。。剩下一个 小时,三个人调C题调到比赛结束。结果还不错,6题rank1,比上一级的队多一题。
K题:签到题,很多人直接o(n^2)过,其实记录下次数可以o(n)。
#include<bits/stdc++.h> using namespace std; const int maxn=1000100; char s[maxn]; int len; int cnt[maxn]; int main() { while(~scanf("%s",s)){ len=strlen(s); memset(cnt,0,sizeof(cnt)); for(int i=0;i<len;i++) cnt[s[i]]++; int snd=-1,pos1=0;; for(int i=0;i<len;i++){ cnt[s[i]]--; for(int j='9';j>s[i];j--){ if(cnt[j]){ //cout<<i<<" "<<j-'0'<<endl; pos1=i; snd=j;break; } } if(~snd) break; } if(snd!=-1){ int pos2=0; for(int i=len-1;i>=0;i--){ if(s[i]==snd){ pos2=i;break; } } swap(s[pos1],s[pos2]); } printf("%s\n",s); } return 0; }
E题:先找递推式,然后矩阵快速幂。
#include<bits/stdc++.h> #define REP(i,a,b) for(int i=a;i<=b;i++) #define MS0(a) memset(a,0,sizeof(a)) using namespace std; typedef long long ll; const int maxn=1000100; const ll mod=1000000007; struct Matrix { ll a[2][2]; friend Matrix operator*(Matrix A,Matrix B) { Matrix C={0,0,0,0}; REP(i,0,1){ REP(j,0,1){ REP(k,0,1) C.a[i][j]=(C.a[i][j]%mod+(A.a[i][k]*B.a[k][j])%mod+mod)%mod; } } return C; } }; ll p,q; ll n; Matrix qpow(Matrix n,ll k) { Matrix res={1,0,0,1}; while(k){ if(k&1) res=res*n; n=n*n; k>>=1; } return res; } int main() { //freopen("in.txt","r",stdin); while(cin>>p>>q>>n){ if(n==0) cout<<2<<endl; else{ Matrix tmp={p,-q,1,0}; tmp=qpow(tmp,n-1); cout<<((tmp.a[0][0]*p+mod)%mod+(tmp.a[0][1]*2)%mod)%mod<<endl; } } return 0; }
J题:简单的叉积,就不写了。
F题:二分水题,也不写了。
G,H,A,C这些必须补。
今天先补A,线段树离线操作。
没有AC不了的题,只有不努力的ACMER!