A. Altitude

从小到大加入每个数,用set查找前驱和后继即可。

时间复杂度$O(n\log n)$。

  1. #include <bits/stdc++.h>
  2. using namespace std ;
  3. const int Maxn=100020,Inf=1e9;
  4. typedef pair<int,int>pi;
  5. int n;
  6. int a[Maxn];
  7. vector<pi>V;
  8. set<int>S;
  9. int ans,rep1,rep2,rep3;
  10. int caldis(int x,int y){
  11. return y>x?(y-x):(y+n-x);
  12. }
  13. void ask(int loc){
  14. if(!S.size())return ;
  15. set<int>::iterator it=S.lower_bound(loc);
  16. set<int>::iterator it2=it;
  17. for(int i=0;i<2;i++){
  18. if(it2==S.begin()){it2=S.end();it2--;}
  19. else it2--;
  20. }
  21. int ret1=Inf,ret2=Inf,cs1,cs2;
  22. for(int i=0;i<5;i++){
  23. int t1=caldis(*it2,loc);
  24. int t2=caldis(loc,*it2);
  25. if(t1<ret1){cs1=*it2;ret1=t1;}
  26. if(t2<ret2){cs2=*it2;ret2=t2;}
  27. it2++;
  28. if(it2==S.end())it2=S.begin();
  29. }
  30. if(ret1+ret2<ans){rep1=cs1;rep2=loc;rep3=cs2;ans=ret1+ret2;}
  31. return ;
  32. }
  33. int main () {
  34. scanf("%d",&n);
  35. for(int i=1;i<=n;i++)scanf("%d",a+i),V.push_back(pi(a[i],i));
  36. sort(V.begin(),V.end());
  37. ans=Inf;
  38. for(int i=0,j;i<V.size();i=j){
  39. for(j=i;j<V.size();j++){
  40. if(V[j].first!=V[i].first)break;
  41. ask(V[j].second);
  42. }
  43. for(int k=i;k<j;k++){
  44. S.insert(V[k].second);
  45. }
  46. }
  47. printf("%d %d %d\n",rep1,rep2,rep3);
  48. return 0 ;
  49. }

  

B. Blocking Buffer

观察发现$\gcd(r,w)$都是可以达到的,于是欧几里得求一下即可。

  1. #include <bits/stdc++.h>
  2. using namespace std ;
  3. const int Maxn=200020,Inf=1e9;
  4. typedef pair<int,int>pi;
  5. typedef long long LL;
  6. bool solve(LL l,LL A,LL B){
  7. if(l-B>=A-1)return 0;
  8. LL gc=__gcd(A,B);
  9. LL tmp=(l-B)/gc*gc;
  10. while(tmp<=l-B)tmp+=gc;
  11. if(tmp<A)return 1;
  12. return 0;
  13. }
  14. int main () {
  15. LL l,A,B;
  16. while(cin>>l>>A>>B){
  17. /*
  18. set<LL>S;
  19. LL cur=0;
  20. bool flag=1;
  21. S.insert(0);
  22. while(1){
  23. if(cur>l-B&&cur<A){
  24. flag=0;
  25. break;
  26. }
  27. if(cur>=A){
  28. cur%=A;
  29. }
  30. else{
  31. cur=(l-cur)/B*B+cur;
  32. }
  33. if(S.find(cur)!=S.end()){break;}
  34. }
  35. puts(flag?"OK":"DEADLOCK");
  36. */
  37. puts(solve(l,A,B)?"DEADLOCK":"OK");
  38. }
  39. return 0 ;
  40. }

  

C. Catch Me If You Can

留坑。

D. Demolition Time

留坑。

E. Economy Printing

将数字从小到大排序,那么第$i$个数要么自己作为开头,要么和$i-2$连接,要么和$i-1$连接,设$f[i][j][k]$表示考虑了前$i$个数,第$i-1$个数用操作$j$,第$i$个数用操作$k$时的最小串长,然后DP即可。

时间复杂度$O(n\log n)$。

  1. #include <bits/stdc++.h>
  2. using namespace std ;
  3.  
  4. typedef pair < int , int > pii ;
  5.  
  6. #define clr( a , x ) memset ( a , x, sizeof a )
  7.  
  8. const int MAXN = 200005 ;
  9. const int INF = 0x3f3f3f3f ;
  10. int n ;
  11.  
  12. int len[MAXN] ;
  13. int a[MAXN] ;
  14. int dp[MAXN][4][4] ;
  15. int f[MAXN] ;
  16. pii p[MAXN][4][4] ;
  17. int vis[MAXN] ;
  18.  
  19. int calc ( int x ) {
  20. int t = 0 ;
  21. while ( x ) {
  22. t ++ ;
  23. x /= 10 ;
  24. }
  25. return t ;
  26. }
  27.  
  28. void dfs ( int n , int x , int y ) {
  29. if ( n == 1 ) return ;
  30. int nx = p[n][x][y].first ;
  31. int ny = x ;
  32. f[n] = p[n][x][y].second ;
  33. dfs ( n - 1 , nx , ny ) ;
  34. }
  35.  
  36. int dfs2 ( int x ) {
  37. vis[x] = 1 ;
  38. if ( f[x] == 0 ) return x ;
  39. return dfs2 ( f[x] ) ;
  40. }
  41.  
  42. void solve () {
  43. for ( int i = 1 ; i <= n ; ++ i ) {
  44. scanf ( "%d" , &a[i] ) ;
  45. }
  46. sort ( a + 1 , a + n + 1 ) ;
  47. for ( int i = 1 ; i <= n ; ++ i ) {
  48. len[i] = calc ( a[i] ) ;
  49. }
  50. clr ( f , 0 ) ;
  51. clr ( p , 0 ) ;
  52. clr ( dp , INF ) ;
  53. dp[0][0][0] = 0 ;
  54. for ( int i = 1 ; i <= n ; ++ i ) {
  55. for ( int j = 0 ; j < 4 ; ++ j ) {
  56. for ( int k = 0 ; k < 4 ; ++ k ) if ( dp[i - 1][j][k] != INF ) {
  57. for ( int l = 0 ; l < 4 ; ++ l ) {
  58. int tmp = dp[i - 1][j][k] + 1 + len[i] ;
  59. if ( l ) tmp = tmp + 1 + len[i] ;
  60. if ( l == 1 && a[i] % 2 == 0 ) continue ;
  61. if ( l == 2 && a[i] % 2 == 1 ) continue ;
  62. if ( dp[i][k][l] > tmp ) {
  63. dp[i][k][l] = tmp ;
  64. p[i][k][l] = pii ( j , 0 ) ;
  65. }
  66. }
  67. if ( j == 1 || j == 2 ) {
  68. if ( i > 2 && a[i] - a[i - 2] == 2 ) {
  69. int tmp = dp[i - 1][j][k] + len[i] - len[i - 2] ;
  70. if ( dp[i][k][j] > tmp ) {
  71. dp[i][k][j] = tmp ;
  72. p[i][k][j] = pii ( j , i - 2 ) ;
  73. }
  74. }
  75. }
  76. if ( k == 1 || k == 2 ) {
  77. if ( i > 1 && a[i] - a[i - 1] == 2 ) {
  78. int tmp = dp[i - 1][j][k] + len[i] - len[i - 1] ;
  79. if ( dp[i][k][k] > tmp ) {
  80. dp[i][k][k] = tmp ;
  81. p[i][k][k] = pii ( j , i - 1 ) ;
  82. }
  83. }
  84. }
  85. if ( k == 3 ) {
  86. if ( i > 1 && a[i] - a[i - 1] == 1 ) {
  87. int tmp = dp[i - 1][j][k] + len[i] - len[i - 1] ;
  88. if ( dp[i][k][k] > tmp ) {
  89. dp[i][k][k] = tmp ;
  90. p[i][k][k] = pii ( j , i - 1 ) ;
  91. }
  92. }
  93. }
  94. }
  95. }
  96. }
  97. int ans = INF , x = -1 , y = -1 ;
  98. for ( int i = 0 ; i < 4 ; ++ i ) {
  99. for ( int j = 0 ; j < 4 ; ++ j ) {
  100. if ( dp[n][i][j] < ans ) {
  101. ans = dp[n][i][j] ;
  102. x = i ;
  103. y = j ;
  104. }
  105. }
  106. }
  107. dfs ( n , x , y ) ;
  108. //printf ( "%d\n" , ans - 1 ) ;
  109. clr ( vis , 0 ) ;
  110. int flag = 0 ;
  111. for ( int i = n ; i >= 1 ; -- i ) if ( !vis[i] ) {
  112. int L = dfs2 ( i ) ;
  113. if ( flag ) putchar ( ',' ) ;
  114. flag = 1 ;
  115. if ( L == i ) printf ( "%d" , a[i] ) ;
  116. else {
  117. printf ( "%d" , a[L] ) ;
  118. if ( a[i] - a[f[i]] == 2 ) {
  119. if ( a[i] % 2 == 0 ) putchar ( '%' ) ;
  120. else putchar ( '#' ) ;
  121. } else putchar ( '-' ) ;
  122. printf ( "%d" , a[i] ) ;
  123. }
  124. }
  125. puts ( "" ) ;
  126. }
  127.  
  128. int main () {
  129. while ( ~scanf ( "%d" , &n ) ) solve () ;
  130. return 0 ;
  131. }

  

F. Format

枚举有没有"^"符号,然后将字符分成三类:可选可不选、必须要选、必须不能选。

设$f[i]$表示处理完字典序最小的$i$个字符时的最短串长以及对应串长的字典序最小串,然后枚举往前延伸到哪里转移。

需要注意的是,如果全部字符都出现了,那么答案应该是%[^!],需要特判。

  1. #include<cstdio>
  2. #include<cstring>
  3. #include<string>
  4. #include<algorithm>
  5. #include<iostream>
  6. using namespace std;
  7. typedef pair<int,string>P;
  8. const int N=300;
  9. int n,i,j,v[N];char s[222222];
  10. P ans(N,""),f[N];
  11. inline bool check(char x){
  12. if(x==' ')return 1;
  13. if(x>='0'&&x<='9')return 1;
  14. if(x>='a'&&x<='z')return 1;
  15. if(x>='A'&&x<='Z')return 1;
  16. return 0;
  17. }
  18. void dp(){
  19. for(i=32;i<=126;i++){
  20. f[i]=P(N,"");
  21. if(v[i]==0||v[i]==2){
  22. P t=f[i-1];
  23. f[i]=t;
  24. }
  25. if(v[i]==0||v[i]==1){
  26. for(j=i;j>=32;j--){
  27. if(v[j]==2)break;
  28. P t=f[j-1];
  29. if(j==i){
  30. t.first++;
  31. t.second.push_back(char(i));
  32. }else if(j+1==i){
  33. t.first+=2;
  34. t.second.push_back(char(j));
  35. t.second.push_back(char(i));
  36. }else{
  37. t.first+=3;
  38. t.second.push_back(char(j));
  39. t.second+="-";
  40. t.second.push_back(char(i));
  41. }
  42. f[i]=min(f[i],t);
  43. }
  44. }
  45. }
  46. }
  47. int main(){
  48. fgets(s,111111,stdin);
  49. n=strlen(s);
  50. //0 : can choose and can not choose
  51. //1 : must choose
  52. //2 : mustn't choose
  53. for(i=32;i<=126;i++)v[i]=0;
  54. for(i=0;i<n;i++)if(check(s[i]))v[s[i]]=1;
  55. for(i=32;i<=126;i++)if(!v[i]&&check(i))v[i]=2;
  56. f[31]=P(0,"%[");
  57. dp();
  58. ans=f[126];
  59. for(i=32;i<=126;i++)v[i]=0;
  60. for(i=0;i<n;i++)if(check(s[i]))v[s[i]]=2;
  61. for(i=32;i<=126;i++)if(!v[i]&&check(i))v[i]=1;
  62. f[31]=P(1,"%[^");
  63. dp();
  64. if(f[126].first>1)ans=min(ans,f[126]);else ans=min(ans,P(2,"%[^!"));
  65. ans.second+="]";
  66. cout<<ans.second<<endl;
  67. return 0;
  68. }

  

G. Great Guest Gathering

分成$n$轮构造即可。

  1. #include <bits/stdc++.h>
  2. using namespace std ;
  3.  
  4. int n ;
  5.  
  6. void solve () {
  7. printf ( "%d %d %d\n" , 1 , 1 , 0 ) ;
  8. for ( int i = 1 ; i < n ; ++ i ) {
  9. for ( int j = i + 2 ; j <= n ; ++ j ) {
  10. printf ( "%d %d %d\n" , j , j , i ) ;
  11. printf ( "%d %d %d\n" , i , i , j ) ;
  12. }
  13. printf ( "%d %d %d\n" , i + 1 , i + 1 , i ) ;
  14. }
  15. for ( int i = n - 1 ; i >= 2 ; -- i ) {
  16. printf ( "%d %d %d\n" , i , i , i + 1 ) ;
  17. }
  18. printf ( "%d %d %d\n" , 0 , 1 , 2 ) ;
  19. }
  20.  
  21. int main () {
  22. while ( ~scanf ( "%d" , &n ) ) solve () ;
  23. return 0 ;
  24. }

  

H. Hockey Cup

按题意模拟即可。

  1. #include <bits/stdc++.h>
  2. using namespace std ;
  3. const int Maxn=200020,Inf=1e9;
  4. typedef pair<int,int>pi;
  5. typedef long long LL;
  6. map<string,int>Mp;
  7.  
  8. string ts[]={"Russia","Sweden","Finland","NA"};
  9. int res[4][4][3];
  10. int sc[4][6];
  11. int g[4][4];
  12. int cmpop;
  13. bool cmp(int a,int b){
  14. return sc[a][cmpop]>sc[b][cmpop];
  15. }
  16. void solve(vector<int>&v,int ty){
  17. if(v.size()<=2){
  18. if(v.size()==1)return ;
  19. if(v.size()==2){
  20. if(!g[v[0]][v[1]])swap(v[0],v[1]);
  21. }
  22. return ;
  23. }
  24. cmpop=ty;
  25. sort(v.begin(),v.end(),cmp);
  26. vector<int>rv;
  27. for(int i=0,j;i<v.size();i=j){
  28. vector<int>tmp;
  29. for(j=i;j<v.size();j++){
  30. if(sc[v[j]][ty]!=sc[v[i]][ty]){break;}
  31. tmp.push_back(v[j]);
  32. }
  33. solve(tmp,ty+1);
  34. for(int it=0;it<tmp.size();it++)rv.push_back(tmp[it]);
  35. }
  36. swap(rv,v);
  37. }
  38. int go(){
  39. vector<int>v;
  40. for(int i=0;i<4;i++)v.push_back(i);
  41. solve(v,0);
  42. if(!v[0]||!v[1])return 1<<1;
  43. return 1<<0;
  44. }
  45. int check(){
  46. memset(sc,0,sizeof sc);
  47. int ret=0;
  48. for(int i=0;i<4;i++){
  49. for(int j=i+1;j<4;j++){
  50. int t1=res[i][j][0],t2=res[i][j][1];
  51. int t3=res[i][j][2];
  52. int ti=i,tj=j;
  53. g[i][j]=1;g[j][i]=0;
  54. if(t1<t2){
  55. g[i][j]=0;g[j][i]=1;
  56. swap(ti,tj);
  57. swap(t1,t2);
  58. }
  59. sc[ti][0]+=2;
  60. sc[ti][1]++;
  61. if(!t3)sc[ti][2]++;
  62. sc[ti][3]+=t1-t2;
  63. sc[ti][4]+=t1;
  64. if(t3)sc[tj][0]++;
  65. sc[tj][3]-=t1-t2;
  66. sc[tj][4]+=t2;
  67. }
  68. }
  69. int tmp[10];
  70. for(int i=0;i<4;i++)tmp[i]=i;
  71. do{
  72. for(int i=0;i<4;i++)sc[i][5]=tmp[i];
  73. ret|=go();
  74. }while(next_permutation(tmp,tmp+4));
  75. return ret;
  76. }
  77. int main () {
  78. for(int i=0;i<4;i++)Mp[ts[i]]=i;
  79. string name1,name2;
  80. for(int i=0;i<5;i++){
  81. string name1,name2;
  82. char ss[10];
  83. int t1,t2,t3;
  84. cin>>name1>>name2>>t1>>t2;
  85. fgets(ss,sizeof ss,stdin);
  86. if(strlen(ss)>=2){
  87. t3=1;
  88. }
  89. else t3=0;
  90. int id1=Mp[name1],id2=Mp[name2];
  91. if(id1>id2){swap(t1,t2);swap(id1,id2);}
  92. res[id1][id2][0]=t1;
  93. res[id1][id2][1]=t2;
  94. res[id1][id2][2]=t3;
  95. }
  96. cin>>name1>>name2;
  97. int id1=Mp[name1],id2=Mp[name2];
  98. int ans=0;
  99. if(id1>id2)swap(id1,id2);
  100. for(int i=0;i<100;i++){
  101. for(int j=0;j<100;j++){
  102. if(i==j)continue;
  103. res[id1][id2][0]=i;
  104. res[id1][id2][1]=j;
  105. res[id1][id2][2]=0;
  106. ans|=check();
  107. if(abs(i-j)==1){
  108. res[id1][id2][2]=1;
  109. ans|=check();
  110. }
  111. }
  112. }
  113. if(ans==3)puts("Believe in playoff!");
  114. else if(ans==2)puts("Already in playoff!");
  115. else puts("No chance");
  116. return 0 ;
  117. }

  

I. Interesting Interactive Idea

留坑。

J. Juice Degustation

留坑。

K. Knights of the Old Republic

考虑对图做集合DP,设$f[S]$表示占领S集合的最小代价,考虑从小到大加入每条边,加入每条边时,如果形成环,那么显然可以扔掉。

否则$f[S]=\min(f[A]+f[B],\min(A中费用最小的点,B中费用最小的点)\times\max(A中需求最大的点,B中需求最大的点,当前边权))$。

在Kruskal的时候用并查集维护即可。

时间复杂度$O(m\log m)$。

  1. #include <bits/stdc++.h>
  2. using namespace std ;
  3.  
  4. typedef long long LL ;
  5.  
  6. const int MAXN = 300005 ;
  7.  
  8. struct Edge {
  9. int u , v , c ;
  10. bool operator < ( const Edge& a ) const {
  11. return c < a.c ;
  12. }
  13. } ;
  14.  
  15. Edge E[MAXN] ;
  16. int a[MAXN] , b[MAXN] , p[MAXN] ;
  17. LL sum[MAXN] ;
  18. int n , m ;
  19.  
  20. int F ( int x ) {
  21. return p[x] == x ? x : ( p[x] = F ( p[x] ) ) ;
  22. }
  23.  
  24. void solve () {
  25. for ( int i = 1 ; i <= n ; ++ i ) {
  26. p[i] = i ;
  27. }
  28. for ( int i = 1 ; i <= n ; ++ i ) {
  29. scanf ( "%d%d" , &a[i] , &b[i] ) ;
  30. sum[i] = 1LL * a[i] * b[i] ;
  31. }
  32. for ( int i = 0 ; i < m ; ++ i ) {
  33. scanf ( "%d%d%d" , &E[i].u , &E[i].v , &E[i].c ) ;
  34. }
  35. sort ( E , E + m ) ;
  36. for ( int i = 0 ; i < m ; ++ i ) {
  37. int x = F ( E[i].u ) ;
  38. int y = F ( E[i].v ) ;
  39. if ( x == y ) continue ;
  40. int na = max ( max ( a[x] , a[y] ) , E[i].c ) ;
  41. int nb = min ( b[x] , b[y] ) ;
  42. LL tmp = 1LL * na * nb ;
  43. sum[y] = min ( sum[x] + sum[y] , tmp ) ;
  44. p[x] = y ;
  45. a[y] = na ;
  46. b[y] = nb ;
  47. }
  48. LL ans = 0 ;
  49. for ( int i = 1 ; i <= n ; ++ i ) {
  50. if ( F ( i ) == i ) ans += sum[i] ;
  51. }
  52. printf ( "%lld\n" , ans ) ;
  53. }
  54.  
  55. int main () {
  56. while ( ~scanf ( "%d%d" , &n , &m ) ) solve () ;
  57. return 0 ;
  58. }

  

L. Lazy Coordinator

从后往前处理,维护当前时刻到每个时刻被选用的概率乘以时刻之和,减去当前出题人报名的时间即可。

时间复杂度$O(n)$。

  1. #include <bits/stdc++.h>
  2. using namespace std ;
  3. const int Maxn=200020,Inf=1e9;
  4. typedef pair<int,int>pi;
  5. int n;
  6. int arr[Maxn];
  7. char op[Maxn];
  8. int tl[Maxn],has[Maxn],idx[Maxn];
  9. double ans[Maxn];
  10. int main () {
  11. scanf("%d",&n);
  12. int cnt=0,id=0;
  13. for(int i=1;i<=n*2;i++){
  14. scanf(" %c%d",&op[i],&tl[i]);
  15. idx[i]=-1;
  16. if(op[i]=='+'){
  17. id++;
  18. arr[id]=tl[i];
  19. idx[i]=id;
  20. cnt++;
  21. }
  22. else{
  23. cnt--;
  24. }
  25. has[i]=cnt;
  26. }
  27. double sum=0;
  28. for(int i=n*2;i>=1;i--){
  29. if(op[i]=='-'){
  30. int k=has[i]+1;
  31. sum=sum*(1.0-1.0/k)+tl[i]*(1.0/k);
  32. }
  33. else ans[idx[i]]=sum;
  34. }
  35. for(int i=1;i<=n;i++)printf("%.12f\n",ans[i]-arr[i]);
  36. return 0 ;
  37. }

  


总结:

  • E题思考方向错了,在错误的道路上越走越远,以致最后半小时想出正解却没有时间写完。
  • G题poursoul没过样例就自信提交,导致在样例WA,下次要注意。

2016-2017 ACM-ICPC, NEERC, Moscow Subregional Contest的更多相关文章

  1. 2016 NEERC, Moscow Subregional Contest K. Knights of the Old Republic(Kruskal思想)

    2016 NEERC, Moscow Subregional Contest K. Knights of the Old Republic 题意:有一张图,第i个点被占领需要ai个兵,而每个兵传送至该 ...

  2. 2018-2019 ICPC, NEERC, Southern Subregional Contest

    目录 2018-2019 ICPC, NEERC, Southern Subregional Contest (Codeforces 1070) A.Find a Number(BFS) C.Clou ...

  3. Codeforces 2018-2019 ICPC, NEERC, Southern Subregional Contest

    2018-2019 ICPC, NEERC, Southern Subregional Contest 闲谈: 被操哥和男神带飞的一场ACM,第一把做了这么多题,荣幸成为7题队,虽然比赛的时候频频出锅 ...

  4. ACM ICPC 2015 Moscow Subregional Russia, Moscow, Dolgoprudny, October, 18, 2015 G. Garden Gathering

    Problem G. Garden Gathering Input file: standard input Output file: standard output Time limit: 3 se ...

  5. ACM ICPC 2015 Moscow Subregional Russia, Moscow, Dolgoprudny, October, 18, 2015 D. Delay Time

    Problem D. Delay Time Input file: standard input Output file: standard output Time limit: 1 second M ...

  6. 2018-2019 ICPC, NEERC, Southern Subregional Contest (Online Mirror) Solution

    从这里开始 题目列表 瞎扯 Problem A Find a Number Problem B Berkomnadzor Problem C Cloud Computing Problem D Gar ...

  7. 2010-2011 ACM-ICPC, NEERC, Moscow Subregional Contest Problem D. Distance 迪杰斯特拉

    Problem D. Distance 题目连接: http://codeforces.com/gym/100714 Description In a large city a cellular ne ...

  8. 2010-2011 ACM-ICPC, NEERC, Moscow Subregional Contest Problem C. Contest 水题

    Problem C. Contest 题目连接: http://codeforces.com/gym/100714 Description The second round of the annual ...

  9. 2016-2017 ACM-ICPC, NEERC, Moscow Subregional Contest Problem L. Lazy Coordinator

    题目来源:http://codeforces.com/group/aUVPeyEnI2/contest/229511 时间限制:1s 空间限制:512MB 题目大意: 给定一个n 随后跟着2n行输入 ...

  10. Codeforces1070 2018-2019 ICPC, NEERC, Southern Subregional Contest (Online Mirror, ACM-ICPC Rules, Teams Preferred)总结

    第一次打ACM比赛,和yyf两个人一起搞事情 感觉被两个学长队暴打的好惨啊 然后我一直做傻子题,yyf一直在切神仙题 然后放一波题解(部分) A. Find a Number LINK 题目大意 给你 ...

随机推荐

  1. Thinkphp中controller控制器根据curl函数请求数据

    public function member(){ $url="http://aitequn.tjnit.com/UserAction_findAllUser"; $ch =cur ...

  2. win10 64位安装memcache扩展和开启redis扩展

    前面有关于win10下搭建wamp环境的介绍,在此不在赘述,php操作memcache有memcache库和memcached库,其中memcache是php内置的扩展库,支持面向对象和面向过程两种操 ...

  3. codevs3250 操作序列

    题目描述 Description Petya是一个非常好玩孩子.他很无聊,因此他开始玩下面的游戏: 他得到一个长度为N的整数序列,他会对这些数字进行操作,他可以把某个数的数值加1或者减1(当然他可以对 ...

  4. MySQL字段自增长AUTO_INCREMENT的学习笔记

    1.创建表时指定AUTO_INCREMENT自增值的初始值(即起始值): CREATE TABLE XXX (ID INT(5) PRIMARY KEY AUTO_INCREMENT) AUTO_IN ...

  5. Windows下memcached.exe的安装与配置

    D:\PHP\Memcached\memcached.exe -d install D:\PHP\Memcached\memcached.exe –m  1024  -d start 假设安装在:D: ...

  6. Alpha总结

    一.预期计划 1.时间:11月7日--11月17日 2.小组分工 角色:程序员.美工.文档.测试 这个阶段以编码为主,每个组员参与编码,同时各自根据自己擅长的方面主要负责一个部分. 项目编码工作分工: ...

  7. SpringMVC Controller介绍

    SpringMVC Controller 介绍 一.简介 在SpringMVC 中,控制器Controller 负责处理由DispatcherServlet 分发的请求,它把用户请求的数据经过业务处理 ...

  8. jstl

    今日内容 l JSTL标签库 l EL函数 l 自定义标签库开发 l JSP模式和案例(*****) 1.1 上次课内容总结 JSP技术: * JSP:Java Server Pages * JSP运 ...

  9. linux 命令笔记

    linux 命令 创建目录 mkdir XX 列出目录 ls 进入目录 cd .. 进入上层目录 cd xx 进入xx目录 cd ~ 进入用户主目录 删除目录 rm -fr XX 清空目录,谨慎使用 ...

  10. ios最新的视频地址链接

    2016年最新iOS教程UI基础http://pan.baidu.com/s/1pLvnH8n资料链接:http://pan.baidu.com/s/1nvewKkh 密码:wktp 2016年最新i ...