A. Harmonic Matrix Counter (3/19)

B. Binary Tree (1/14)

C. Asa's Chess Problem (21/65)

[ Problem ]

给出一个棋盘格,里面的格子两两分为一组,组内的格子可以交换位置,
同一组格子一定在同一行或者同一列,每个格子为白色或者黑色,
现在要求每行中黑色的格子数量在rL到rR之间,每列中黑色的格子数量在cL到cR之间,
现在要求求出最少的交换次数使得要求被满足,不能满足则输出-1

[ Solution ]

我们对于每个行建立点,每列建立点,原点向行和列连本来就有的黑格子数量,
对于每行和每列向汇点连上下界为数据给出的[L,R]的流,费用均为0,
对于每对分组,同行则从黑色格子列向白色格子列连上下界[0,1],费用为1的流,
对于同列如法炮制,如果格子颜色相同则不需要引流。
求上下界网络流即可。

[ Code ]

  1. #include <cstdio>
  2. #include <algorithm>
  3. #include <cstring>
  4. #include <queue>
  5. using namespace std;
  6. const int N=2010,M=N*10,P=55;
  7. namespace ULB_Min_Cost_Max_Flow{
  8. const int INF=0x3f3f3f3f;
  9. int V,SS,TT,S,T,cnt,ans,D[N],d[N],from[N],g[N],flow; bool in[N];
  10. struct edge{int from,to,nxt,c,v;}e[M];
  11. void add(int u,int v,int w,int c){
  12. e[++cnt].from=u;e[cnt].to=v;
  13. e[cnt].nxt=g[u];g[u]=cnt;
  14. e[cnt].c=c;e[cnt].v=w;
  15. }
  16. void add_edge(int u,int v,int wl,int wr,int c){
  17. D[u]-=wl; D[v]+=wl;
  18. add(u,v,wr-wl,c);add(v,u,0,-c);
  19. }
  20. void Rebuild(){
  21. SS=V+1; TT=V+2;
  22. for(int i=1;i<=V;i++){
  23. if(D[i]<0)add(i,TT,-D[i],0),add(TT,i,0,0);
  24. if(D[i]>0)add(SS,i,D[i],0),add(i,SS,0,0);
  25. }
  26. }
  27. bool spfa(){
  28. memset(d,INF,sizeof(d)); d[SS]=0;
  29. memset(from,0,sizeof(from));
  30. queue<int> q; q.push(SS);
  31. while(!q.empty()){
  32. int now=q.front(); q.pop();
  33. for(int i=g[now];i;i=e[i].nxt){
  34. if(e[i].v&&d[e[i].to]>d[now]+e[i].c){
  35. d[e[i].to]=d[now]+e[i].c;
  36. from[e[i].to]=i;
  37. q.push(e[i].to);
  38. }
  39. }
  40. }return(d[TT]!=INF);
  41. }
  42. void mcf(){
  43. int x=INF;
  44. for(int i=from[TT];i;i=from[e[i].from])x=min(x,e[i].v);flow+=x;
  45. for(int i=from[TT];i;i=from[e[i].from]){e[i].v-=x;e[i^1].v+=x;ans+=e[i].c*x;}
  46. }
  47. void Initialize(){
  48. memset(g,0,sizeof(g));
  49. memset(e,0,sizeof(e));
  50. memset(D,0,sizeof(D));
  51. ans=flow=0; cnt=1; V=0;
  52. S=++V; T=++V;
  53. add_edge(T,S,0,INF,0);
  54. }
  55. void Run(){
  56. while(spfa())mcf();
  57. for(int i=g[SS];i;i=e[i].nxt)if(e[i].v)ans=-1;
  58. }
  59. }
  60. int n,mp[P][P],sc[P],sr[P],r[P],c[P],rL[P],rR[P],cL[P],cR[P];
  61. int main(){
  62. using namespace ULB_Min_Cost_Max_Flow;
  63. while(~scanf("%d",&n)){
  64. Initialize();
  65. memset(sc,0,sizeof(sc));
  66. memset(sr,0,sizeof(sr));
  67. memset(c,0,sizeof(c));
  68. memset(r,0,sizeof(r));
  69. for(int i=1;i<=n;i++)for(int j=1;j<=n;j++){
  70. scanf("%d",&mp[i][j]);
  71. if(mp[i][j])sr[i]++,sc[j]++;
  72. }
  73. for(int i=1;i<=n;i++)r[i]=++V,c[i]=++V;
  74. for(int i=1;i<=n;i++){
  75. scanf("%d%d",&rL[i],&rR[i]);
  76. add_edge(S,r[i],sr[i],sr[i],0);
  77. add_edge(r[i],T,rL[i],rR[i],0);
  78. }
  79. for(int i=1;i<=n;i++){
  80. scanf("%d%d",&cL[i],&cR[i]);
  81. add_edge(S,c[i],sc[i],sc[i],0);
  82. add_edge(c[i],T,cL[i],cR[i],0);
  83. }
  84. for(int i=1;i<=n*n/2;i++){
  85. int x1,y1,x2,y2;
  86. scanf("%d%d%d%d",&x1,&y1,&x2,&y2);
  87. if(mp[x1][y1]==mp[x2][y2])continue;
  88. if(!mp[x1][y1])swap(x1,x2),swap(y1,y2);
  89. if(x1==x2)add_edge(c[y1],c[y2],0,1,1);
  90. if(y1==y2)add_edge(r[x1],r[x2],0,1,1);
  91. }Rebuild(); Run();
  92. printf("%d\n",ans);
  93. }return 0;
  94. }

D. What a Beautiful Lake (198/381)

[ Problem ]

给出环形的地形,求最长连续严格单调序列

[ Solution ]

倍长数组,正反做两次贪心即可。

[ Code ]

  1. #include <cstdio>
  2. #include <algorithm>
  3. using namespace std;
  4. int n,a[300];
  5. int main(){
  6. while(~scanf("%d",&n),n){
  7. for(int i=1;i<=n;i++)scanf("%d",&a[i]);
  8. for(int i=1;i<=n;i++)a[n+i]=a[i];
  9. int ans=0,l=0;
  10. for(int i=2;i<=n*2;i++){
  11. if(a[i]>a[i-1])l++;
  12. else l=0;
  13. ans=max(ans,l);
  14. }l=0;
  15. for(int i=2;i<=n*2;i++){
  16. if(a[i]<a[i-1])l++;
  17. else l=0;
  18. ans=max(ans,l);
  19. }printf("%d\n",ans);
  20. }return 0;
  21. }

E. What a Ridiculous Election (123/644)

[ Problem ]

一开始给出的数字串为12345,
操作有:
  1.可以允许任意次数交换相邻的数字
  2.允许有3次数字+1,如果大于等于10则对10取模
  3.允许有2次数字*2,如果大于等于10则对10取模
问到每个给出的数字需要的最小操作数,如果无法到达则输出-1

[ Solution ]

我们用1000000*(*2次数)+100000*(+1次数)+数字本身作为状态做状态BFS,
在O(状态数)的时间内预处理所有的答案,之后直接输出即可。

[ Code ]

  1. #include <cstdio>
  2. #include <algorithm>
  3. #include <queue>
  4. #include <cstring>
  5. using namespace std;
  6. const int INF=0x3f3f3f3f;
  7. int ans[3000000],vis[3000000];
  8. queue<int> Q;
  9. int main(){
  10. memset(ans,INF,sizeof(ans));
  11. ans[12345]=0; vis[12345]=1;
  12. Q.push(12345);
  13. while(Q.size()){
  14. int x=Q.front(); Q.pop();
  15. int d[7],t=x;
  16. for(int i=0;i<7;i++){
  17. d[i]=t%10;
  18. t/=10;
  19. }
  20. for(int i=0;i<4;i++){
  21. swap(d[i],d[i+1]);
  22. int y=0;
  23. for(int j=6;j>=0;j--)y=y*10+d[j];
  24. if(!vis[y]){
  25. vis[y]=1;
  26. ans[y]=ans[x]+1;
  27. //printf("%d %d\n",y,ans[y]);
  28. Q.push(y);
  29. }swap(d[i],d[i+1]);
  30. }
  31. if(d[5]<3){
  32. for(int i=0;i<5;i++){
  33. d[i]=(d[i]+1)%10;
  34. d[5]++;
  35. int y=0;
  36. for(int j=6;j>=0;j--)y=y*10+d[j];
  37. if(!vis[y]){
  38. vis[y]=1;
  39. ans[y]=ans[x]+1;
  40. Q.push(y);
  41. }
  42. d[5]--;
  43. d[i]=(d[i]+9)%10;
  44. }
  45. }
  46. if(d[6]<2){
  47. for(int i=0;i<5;i++){
  48. int t=d[i];
  49. d[i]=(d[i]*2)%10;
  50. d[6]++;
  51. int y=0;
  52. for(int j=6;j>=0;j--)y=y*10+d[j];
  53. if(!vis[y]){
  54. vis[y]=1;
  55. ans[y]=ans[x]+1;
  56. Q.push(y);
  57. }
  58. d[6]--;
  59. d[i]=t;
  60. }
  61. }
  62. }int n;
  63. while(~scanf("%d",&n)){
  64. int ANS=INF;
  65. ANS=min(ANS,ans[n]);
  66. ANS=min(ANS,ans[n+100000]);
  67. ANS=min(ANS,ans[n+200000]);
  68. ANS=min(ANS,ans[n+300000]);
  69. ANS=min(ANS,ans[n+1000000]);
  70. ANS=min(ANS,ans[n+1100000]);
  71. ANS=min(ANS,ans[n+1200000]);
  72. ANS=min(ANS,ans[n+1300000]);
  73. ANS=min(ANS,ans[n+2000000]);
  74. ANS=min(ANS,ans[n+2100000]);
  75. ANS=min(ANS,ans[n+2200000]);
  76. ANS=min(ANS,ans[n+2300000]);
  77. if(ANS==INF)puts("-1");
  78. else printf("%d\n",ANS);
  79. }return 0;
  80. }

F. What a Simple Research (197/470)

[ Problem ]

求出每个字母在矩阵中的出现次数,按出现次数大小输出

[ Solution ]

签到题,注意不出现的字母不需要输出

[ Code ]

  1. #include <cstdio>
  2. #include <algorithm>
  3. #include <map>
  4. using namespace std;
  5. struct data{char C;int t;}p[10];
  6. char s[100010],ch[5]={'A','G','C','D','E'};
  7. bool cmp(data a,data b){
  8. if(a.t!=b.t)return a.t>b.t;
  9. return a.C<b.C;
  10. }
  11. map<char,int> M;
  12. int n,m;
  13. int main(){
  14. while(~scanf("%d%d",&n,&m),n+m){
  15. for(int i=0;i<5;i++)p[i].C=ch[i],p[i].t=0,M[p[i].C]=i;
  16. for(int i=0;i<n;i++){
  17. scanf("%s",s);
  18. for(int j=0;j<m;j++)p[M[s[j]]].t++;
  19. }sort(p,p+5,cmp);
  20. int t=4;
  21. while(!p[t].t)t--;
  22. for(int i=0;i<t;i++)printf("%c %d ",p[i].C,p[i].t);
  23. printf("%c %d\n",p[t].C,p[t].t);
  24. }return 0;
  25. }

G. A Triangle Puzzle (1/40)

H. A New Ground Heating Device (13/103)

[ Problem ]

给出一个数(luan)学(qi)物(ba)理(zao)公式
求可行的最高高度,使得满足至少有S的面积能被K个或以上机器制热半径覆盖。

[ Solution ]

我们发现如果知道高度我们可以通过公式计算出每个圆的半径,
只要求出圆并,就能得到不同个数的圆能共同覆盖的总面积,
这个面积关于高度单调,因此我们二分答案,用k次圆并检验即可。

[ Code ]

  1. #include <cstdio>
  2. #include <algorithm>
  3. #include <cstring>
  4. #include <cmath>
  5. using namespace std;
  6. const int N=210;
  7. namespace KD_Circle_Merge{
  8. #define sqr(x) ((x)*(x))
  9. const double eps=1e-8;
  10. const double pi=acos(-1.0);
  11. double area[N];
  12. int dcmp(double x){if(x<-eps)return -1; else return x>eps;}
  13. struct cp{
  14. double x,y,r,angle; int d; cp(){}
  15. cp(double xx,double yy,double ang=0,int t=0){x=xx; y=yy; angle=ang; d=t;}
  16. void get(){scanf("%lf%lf%lf",&x,&y,&r);d=1;}
  17. }cir[N],tp[N*2];
  18. double dis(cp a,cp b){return sqrt(sqr(a.x-b.x)+sqr(a.y-b.y));}
  19. double cross(cp p0,cp p1,cp p2){return(p1.x-p0.x)*(p2.y-p0.y)-(p1.y-p0.y)*(p2.x-p0.x);}
  20. int CirCrossCir(cp p1,double r1,cp p2,double r2,cp &cp1,cp &cp2){
  21. double mx=p2.x-p1.x,sx=p2.x+p1.x,mx2=mx*mx;
  22. double my=p2.y-p1.y,sy=p2.y+p1.y,my2=my*my;
  23. double sq=mx2+my2,d=-(sq-sqr(r1-r2))*(sq-sqr(r1+r2));
  24. if(d+eps<0)return 0; if(d<eps)d=0; else d=sqrt(d);
  25. double x=mx*((r1+r2)*(r1-r2)+mx*sx)+sx*my2;
  26. double y=my*((r1+r2)*(r1-r2)+my*sy)+sy*mx2;
  27. double dx=mx*d,dy=my*d; sq*=2;
  28. cp1.x=(x-dy)/sq; cp1.y=(y+dx)/sq;
  29. cp2.x=(x+dy)/sq; cp2.y=(y-dx)/sq;
  30. if(d>eps)return 2; else return 1;
  31. }
  32. bool circmp(const cp& u,const cp& v){return dcmp(u.r-v.r)<0;}
  33. bool cmp(const cp& u,const cp& v) {
  34. if(dcmp(u.angle-v.angle))return u.angle<v.angle;
  35. return u.d>v.d;
  36. }
  37. double calc(cp cir,cp cp1,cp cp2){
  38. double ans=(cp2.angle-cp1.angle)*sqr(cir.r)-cross(cir,cp1,cp2)+cross(cp(0,0),cp1,cp2);
  39. return ans/2;
  40. }
  41. void CirUnion(cp cir[],int n){
  42. cp cp1,cp2;
  43. sort(cir,cir+n,circmp);
  44. for(int i=0;i<n;i++)
  45. for(int j=i+1;j<n;j++)
  46. if(dcmp(dis(cir[i],cir[j])+cir[i].r-cir[j].r)<=0)
  47. cir[i].d++;
  48. for(int i=0;i<n;i++){
  49. int tn=0,cnt=0;
  50. for(int j=0;j<n;j++){
  51. if(i==j)continue;
  52. if(CirCrossCir(cir[i],cir[i].r,cir[j],cir[j].r,cp2,cp1)<2)continue;
  53. cp1.angle=atan2(cp1.y-cir[i].y,cp1.x-cir[i].x);
  54. cp2.angle=atan2(cp2.y-cir[i].y,cp2.x-cir[i].x);
  55. cp1.d=1; tp[tn++]=cp1;
  56. cp2.d=-1; tp[tn++]=cp2;
  57. if(dcmp(cp1.angle-cp2.angle)>0)cnt++;
  58. }
  59. tp[tn++]=cp(cir[i].x-cir[i].r,cir[i].y,pi,-cnt);
  60. tp[tn++]=cp(cir[i].x-cir[i].r,cir[i].y,-pi,cnt);
  61. sort(tp,tp+tn,cmp);
  62. int p,s=cir[i].d+tp[0].d;
  63. for(int j=1;j<tn;j++){
  64. p=s; s+=tp[j].d;
  65. area[p]+=calc(cir[i],tp[j-1],tp[j]);
  66. }
  67. }
  68. }
  69. }
  70. using namespace KD_Circle_Merge;
  71. double z[N];
  72. int T,n,W,K,S,x[N],y[N];
  73. double getR(double X,double Y,double h,double Z){
  74. double l=sqrt(X*X+Y*Y+h*h);
  75. return W*1.0/l/Z;
  76. }
  77. bool check(double h){
  78. memset(cir,0,sizeof(cir));
  79. for(int i=0;i<n;i++){
  80. cir[i].x=x[i];
  81. cir[i].y=y[i];
  82. cir[i].r=getR(x[i],y[i],h,z[i]);
  83. cir[i].d=1;
  84. }memset(area,0,sizeof(area));
  85. CirUnion(cir,n);
  86. if(dcmp(area[K]-S)>=0)return 1;
  87. return 0;
  88. }
  89. int main(){
  90. scanf("%d",&T);
  91. while(T--){
  92. scanf("%d%d%d%d",&n,&W,&K,&S);
  93. for(int i=0;i<n;i++)scanf("%d%d%lf",&x[i],&y[i],&z[i]);
  94. if(check(500))puts("Oops!");
  95. else if(!check(0))puts("No solution!");
  96. else{
  97. double l=0,r=500,mid,ans=-1;
  98. for(int i=1;i<100;i++){
  99. mid=(l+r)*0.5;
  100. if(check(mid))l=mid,ans=mid;
  101. else r=mid;
  102. }printf("%.4lf\n",ans);
  103. }
  104. }return 0;
  105. }

I. A Boring Problem (36/289)

[ Problem ]

求出$Ans[n]=(a[1]+a[2]+…+a[n])^k+(a[2]+…+a[n])^k+(a[3]+…+a[n])^k$,
并顺序输出Ans[1~n]。

[ Solution ]

记$s[n]=∑_{i=1}^{n}a[i]$,
则$Ans[n]=∑_{i=0}^{n}(s[n]-s[i])^k$
我们将式子展开,得到$Ans[n]=∑_{i=0}^{k}C(k,i)s[n]^{(k-i)}*(∑_{j=0}^{n-1}(-s[j])^i)$
我们预处理$S[i][j]=s[i]^j$ 以及 $R[i][j]=∑_{t=0}^{i}S[t][j]$
那么就可以$O(nk)$计算答案了。

[ Code ] 

  1. #include <cstdio>
  2. #include <algorithm>
  3. using namespace std;
  4. const int N=100010,M=110;
  5. typedef long long LL;
  6. const LL P=1000000007LL;
  7. LL C[M][M],a[N],ans[N],s[N],S[N][M],T[N][M],R[N][M];
  8. char ch[N];
  9. int Cas,n,k;
  10. void up(LL &x,LL y){x+=y;if(x>=P)x-=P;if(x<0)x+=P;}
  11. int main(){
  12. scanf("%d",&Cas);
  13. while(Cas--){
  14. scanf("%d%d",&n,&k);
  15. for(int i=0;i<=k;i++)C[i][0]=C[i][i]=1LL;
  16. for(int i=1;i<=k;i++)for(int j=1;j<=i;j++)C[i][j]=(C[i-1][j-1]+C[i-1][j])%P;
  17. scanf("%s",ch+1);
  18. for(int i=1;i<=n;i++)a[i]=ch[i]-'0';
  19. for(int i=1;i<=n;i++)s[i]=(s[i-1]+a[i])%P;
  20. // S[i][j]=s[i]^j
  21. for(int i=0;i<=n;i++)S[i][0]=1;
  22. for(int i=1;i<=n;i++)for(int j=1;j<=k;j++)S[i][j]=S[i][j-1]*s[i]%P;
  23. // R[i][j]=∑S[t][j](t<=i)
  24. for(int i=0;i<=k;i++)R[0][i]=S[0][i];
  25. for(int i=1;i<=n;i++)for(int j=0;j<=k;j++)R[i][j]=(R[i-1][j]+S[i][j])%P;
  26. for(int i=1;i<=n;i++){
  27. ans[i]=0;
  28. for(int p=0;p<=k;p++){
  29. if(p%2==0)up(ans[i],C[k][p]*S[i][k-p]%P*R[i-1][p]%P);
  30. else up(ans[i],-C[k][p]*S[i][k-p]%P*R[i-1][p]%P);
  31. }
  32. }
  33. for(int i=1;i<=n;i++)printf("%lld%c",ans[i],i==n?'\n':' ');
  34. }return 0;
  35. }

J. Parrot (0/3)

K. JiLi Number (138/171)

[ Problem ]

吉利数指对于数字K,[1,K]中,数字中1的个数刚好等于K,
要求统计前$N(N<=10^100)$个数字中有多少吉利数

[ Solution ]

我们发现数字范围非常的大,因此猜想答案应该是收敛的,
打表发现最大的吉利数为1111111110,此后1的增长速度快过K的增长,
因此我们打表记录所有吉利数,直接查表即可。

[ Code ]

  1. #include <cstdio>
  2. #include <algorithm>
  3. #include <cstring>
  4. using namespace std;
  5. typedef long long LL;
  6. LL Table[84]={1,199981,199982,199983,199984,199985,199986,199987,199988,
  7. 199989,199990,200000,200001,1599981,1599982,1599983,1599984,
  8. 1599985,1599986,1599987,1599988,1599989,1599990,2600000,2600001,
  9. 13199998,35000000,35000001,35199981,35199982,35199983,35199984,
  10. 35199985,35199986,35199987,35199988,35199989,35199990,35200000,
  11. 35200001,117463825,500000000,500000001,500199981,500199982,
  12. 500199983,500199984,500199985,500199986,500199987,500199988,
  13. 500199989,500199990,500200000,500200001,501599981,501599982,
  14. 501599983,501599984,501599985,501599986,501599987,501599988,
  15. 501599989,501599990,502600000,502600001,513199998,535000000,
  16. 535000001,535199981,535199982,535199983,535199984,535199985,
  17. 535199986,535199987,535199988,535199989,535199990,535200000,
  18. 535200001,1111111110,100000000000000};
  19. char s[1000];
  20. int main(){
  21. while(~scanf("%s",s)){
  22. int len=strlen(s);
  23. if(len>11)puts("83 1111111110");
  24. else{
  25. LL t=0;
  26. for(int i=0;i<len;i++)t=t*10+s[i]-'0';
  27. int cnt=0;
  28. while(Table[cnt]<=t)cnt++;
  29. printf("%d %lld\n",cnt,Table[cnt-1]);
  30. }
  31. }return 0;
  32. }

  

The 2016 ACMICPC Asia Beijing Regional Contest的更多相关文章

  1. The 2016 ACM-ICPC Asia Beijing Regional Contest E - What a Ridiculous Election

    https://vjudge.net/contest/259447#problem/E bfs,k个限制条件以数组的额外k维呈现. #include <bits/stdc++.h> usi ...

  2. 2018 ACM-ICPC Asia Beijing Regional Contest (部分题解)

    摘要 本文主要给出了2018 ACM-ICPC Asia Beijing Regional Contest的部分题解,意即熟悉区域赛题型,保持比赛感觉. Jin Yong’s Wukong Ranki ...

  3. ACM-ICPC Asia Beijing Regional Contest 2018 Reproduction hihocoder1870~1879

    ACM-ICPC Asia Beijing Regional Contest 2018 Reproduction hihocoder1870~1879 A 签到,dfs 或者 floyd 都行. #i ...

  4. The 2016 ACM-ICPC Asia Qingdao Regional Contest

    A - Relic Discovery 签到 #include <cstdio> using namespace std; int T,n; long long ans=0; int ma ...

  5. The 2018 ACM-ICPC Asia Beijing Regional Contest

    http://hihocoder.com/problemset/problem/ #1870 : Jin Yong’s Wukong Ranking List 我是每加1个点就dfs判断1次. 正解是 ...

  6. 【最小割】【Dinic】HihoCoder - 1252 - The 2015 ACM-ICPC Asia Beijing Regional Contest - D - Kejin Game

    题意:有一个技能学习表,是一个DAG,要想正常学习到技能x,要将指向x的技能全部先学到,然后会有一个正常花费cx.然后你还有一种方案,通过氪金dx直接获得技能x.你还可以通过一定的代价,切断一条边.问 ...

  7. 【BFS】【枚举】HihoCoder - 1251 - The 2015 ACM-ICPC Asia Beijing Regional Contest - C - Today Is a Rainy Day

    题意:给你两个只由1~6组成的串,问你B串至少要经过几次操作变成A串. 一次操作要么选择一个种类的数,将其全部变成另一种类:要么选择一个数,将其变为另一个数. 可以证明,一定先进行一定数量的第一种操作 ...

  8. hihoCoder #1871 : Heshen's Account Book-字符串暴力模拟 自闭(getline()函数) (ACM-ICPC Asia Beijing Regional Contest 2018 Reproduction B) 2018 ICPC 北京区域赛现场赛B

    P2 : Heshen's Account Book Time Limit:1000ms Case Time Limit:1000ms Memory Limit:512MB Description H ...

  9. hihoCoder #1870 : Jin Yong’s Wukong Ranking List-闭包传递(递归) (ACM-ICPC Asia Beijing Regional Contest 2018 Reproduction A) 2018 ICPC 北京区域赛现场赛A

    P1 : Jin Yong’s Wukong Ranking List Time Limit:1000ms Case Time Limit:1000ms Memory Limit:512MB Desc ...

随机推荐

  1. Sublime之插件的安装(二)

    前不久的文章里面,有讲过关于sublime插件的具体的安装,这里就不多说了~ 在使用sublime进行打开html页面的时候,是不是经常右击-->view in brower,是不是用多了感觉很 ...

  2. Openflow Plugin学习笔记2

    OpenDaylight OpenFlow Plugin 过载保护 过载保护 OF Plugin中的过载保护按如下流程工作: ConnectionConductor将消息送入队列,是最靠近OFJava ...

  3. localStorage H5本地存储

    域内安全.永久保存.即客户端或浏览器中来自同一域名的所有页面都可访问localStorage数据且数据除了删除否则永久保存,但客户端或浏览器之间的数据相互独立. <!doctype html&g ...

  4. 6 - Python内置结构 - 字典

    目录 1 字典介绍 2 字典的基本操作 2.1 字典的定义 2.2 字典元素的访问 2.3 字典的增删改 3 字典遍历 3.1 遍历字典的key 3.2 遍历字典的value 3.3 变量字典的键值对 ...

  5. [002] delete_duplication_of_linked_list

    [Description] Given a unsort linked list, delete all the duplication from them, no temporary space p ...

  6. Linux内核中实现生产者与消费者(避免无效唤醒)【转】

    转自:http://blog.csdn.net/crazycoder8848/article/details/42581399 本文关注的重点是,避免内核线程的无效唤醒,并且主要是关注消费者线程的设计 ...

  7. ubuntu12.04 svn ssl错误

    1,ubuntu12.04 svn ssl错误提示: OPTIONS of '<url>': SSL handshake failed: SSL error: Key usage viol ...

  8. 在Perl中使用Getopt::Long模块来接收用户命令行参数

    我们在linux常常用到一个程序需要加入参数,现在了解一下perl中的有关控制参数的函数.getopt.在linux有的参数有二种形式.一种是–help,另一种是-h.也就是-和–的分别.–表示完整参 ...

  9. 百度地图js lite api 支持点聚合

    百度地图lite api 是专门为h5 绘制海量点设计的,但是偏偏忽略掉了点聚合的需求,所以需要自己动手,做一次二次改造. 我们知道点聚合需要引入开源库: MarkerClusterer:  http ...

  10. Nginx源码分析--数组(转)

    原文地址:http://blog.csdn.net/marcky/article/details/5747431 备注:以下关于Nginx源码的分析基于淘宝开源项目Tengine. Nginx中对数组 ...