A. Array Factory

将下标按前缀和排序,然后双指针,维护最大的右边界即可。

  1. #include<cstdio>
  2. #include<algorithm>
  3. using namespace std;
  4. typedef long long ll;
  5. const int N=200010;
  6. int n,i,j,anslen,ansl,ansr,mr,q[N];
  7. ll a[N],lim;
  8. inline bool cmp(int x,int y){return a[x]<a[y];}
  9. int main(){
  10. freopen("arrayfactory.in","r",stdin);
  11. freopen("arrayfactory.out","w",stdout);
  12. scanf("%d%lld",&n,&lim);
  13. for(i=1;i<=n;i++)scanf("%lld",&a[i]),a[i]+=a[i-1];
  14. for(i=0;i<=n;i++)q[i]=i;
  15. sort(q,q+n+1,cmp);
  16. for(i=j=0;i<=n;i++){
  17. while(j<=n&&a[q[j]]-a[q[i]]<=lim)mr=max(mr,q[j++]);
  18. if(mr>q[i]){
  19. int len=mr-q[i];
  20. if(len>anslen){
  21. anslen=len;
  22. ansl=q[i];
  23. ansr=n-mr;
  24. }else if(len==anslen&&q[i]<ansl){
  25. ansl=q[i];
  26. ansr=n-mr;
  27. }
  28. }
  29. }
  30. if(!anslen)return puts("-1"),0;
  31. printf("%d\n%d %d",anslen,ansl,ansr);
  32. }
  33. /*
  34. a[r]-a[l]<=lim
  35. ask max r
  36. a[r]<=a[l]+lim
  37. */

  

B. Purchases and Bonuses

$f[i][j]$表示购买了前$i$个物品,目前有$j$积分时最多省多少钱,转移就是要么直接买,要么把积分全用完。

  1. #include<cstdio>
  2. #include<algorithm>
  3. using namespace std;
  4. typedef long long LL;
  5. typedef pair<LL,LL>pi;
  6. const int Maxn=102,Inf=1e9;
  7. int n;
  8. int a[Maxn];
  9. int pre[102][100020];
  10. int pw[102][100020];
  11. int rep[102];
  12. int dp[2][100020];
  13. int main(){
  14. freopen("bonuses.in","r",stdin);
  15. freopen("bonuses.out","w",stdout);
  16. while(scanf("%d",&n)!=EOF){
  17. for(int i=1;i<=n;i++)scanf("%d",a+i);
  18. int cs=0;
  19. for(int i=0;i<=n*1000;i++)dp[cs][i]=Inf;
  20. dp[cs][0]=0;
  21. for(int i=1;i<=n;i++,cs^=1){
  22. for(int j=0;j<=n*1000;j++)dp[cs^1][j]=Inf;
  23. for(int j=0;j<=i*1000;j++){
  24. if(dp[cs][j]==Inf)continue;
  25. if(dp[cs^1][j+a[i]/100]>dp[cs][j]+a[i]){
  26. dp[cs^1][j+a[i]/100]=dp[cs][j]+a[i];
  27. pre[i][j+a[i]/100]=j;
  28. pw[i][j+a[i]/100]=0;
  29. }
  30. int tmp=min(a[i],j);
  31. int tmpv=dp[cs][j]+a[i]-tmp;
  32. if(dp[cs^1][j-tmp]>tmpv){
  33. dp[cs^1][j-tmp]=tmpv;
  34. pre[i][j-tmp]=j;
  35. pw[i][j-tmp]=tmp;
  36. }
  37. }
  38. }
  39. int ans=Inf,anscs;
  40. for(int i=0;i<=n*1000;i++){
  41. if(ans>dp[cs][i]){
  42. ans=dp[cs][i];anscs=i;
  43. }
  44. }
  45. for(int i=n;i>=1;i--){
  46. rep[i]=pw[i][anscs];
  47. anscs=pre[i][anscs];
  48. }
  49. printf("%d\n",ans);
  50. for(int i=1;i<=n;i++)printf("%d + %d\n",a[i]-rep[i],rep[i]);
  51. }
  52. }
  53. /*
  54. a[r]-a[l]<=lim
  55. ask max r
  56. a[r]<=a[l]+lim
  57. */

  

C. Number of Solutions

留坑。

D. Cutting Potatoes

暴力枚举即可。

  1. #include<cstdio>
  2. #include<algorithm>
  3. using namespace std;
  4. typedef long long LL;
  5. typedef pair<LL,LL>pi;
  6. int n,K;
  7. struct Node{
  8. LL x,y;
  9. Node(){}
  10. Node(LL x,LL y):x(x),y(y){}
  11. bool operator <(const Node&a)const{
  12. return x*a.y<=y*a.x;
  13. }
  14. Node operator /(const Node&a)const{
  15. return Node(x*a.y,y*a.x);
  16. }
  17. };
  18. int cmp(Node a,Node b){
  19. if(a.x*b.y==a.y*b.x)return 0;
  20. return a.x*b.y>a.y*b.x?1:-1;
  21. }
  22. int a[102];
  23. int rep[102],tmprep[102];
  24. int main(){
  25. freopen("cut-potatoes.in","r",stdin);
  26. freopen("cut-potatoes.out","w",stdout);
  27. while(scanf("%d%d",&n,&K)!=EOF){
  28. for(int i=1;i<=n;i++)scanf("%d",a+i);
  29. Node ans=Node(10000000,1);
  30. for(int i=1;i<=n;i++){
  31. for(int j=1;j<=K;j++){
  32. Node minx=Node(a[i],j);
  33. Node maxx=Node(1,10000000);
  34. bool flag=1;
  35. for(int k=1;k<=n;k++){
  36. int x=a[k]*minx.y/minx.x;
  37. if(!x){flag=0;break;}
  38. x=min(x,K);
  39. tmprep[k]=x;
  40. maxx=max(Node(a[k],x),maxx);
  41. }
  42. if(!flag){continue;}
  43. Node tans=maxx/minx;
  44. if(tans<ans){
  45. ans=tans;
  46. for(int k=1;k<=n;k++)rep[k]=tmprep[k];
  47. }
  48. }
  49. }
  50. for(int i=1;i<=n;i++)printf("%d%c",rep[i],i==n?'\n':' ');
  51. }
  52. }
  53. /*
  54. a[r]-a[l]<=lim
  55. ask max r
  56. a[r]<=a[l]+lim
  57. */

  

E. Divide and Conquer

DP求出点数为$n$时的划分方案数,然后枚举决策找到第$k$小解即可。

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. typedef long long LL;
  4. typedef vector<int>vi;
  5. struct P{
  6. int x,y;
  7. P(){}
  8. P(int x,int y):x(x),y(y){}
  9. bool operator<(const P&a)const{
  10. if(x!=a.x)return x<a.x;
  11. return y<a.y;
  12. }
  13. P operator -(const P&a)const{
  14. return P(x-a.x,y-a.y);
  15. }
  16. int operator *(const P&a)const{
  17. return x*a.y-y*a.x;
  18. }
  19. }a[33];
  20. int n;
  21. LL Mp[44];
  22. int cal(P t1,P t2,P t3){
  23. int tmp=(t2-t1)*(t3-t1);
  24. return tmp>0;
  25. }
  26. bool cmp(int x,int y){return a[x]<a[y];}
  27. LL dfs(int n){
  28. if(Mp[n]>=0)return Mp[n];
  29. if(!n){return Mp[n]=1;}
  30. LL t=0;
  31. for(int i=0;i<n;i++){
  32. for(int j=i+1;j<n;j++){
  33. int l=j-i-1,r=n-2-l;
  34. if((l&1))continue;
  35. LL res1=dfs(l);
  36. LL res2=dfs(r);
  37. t+=res1*res2;
  38. }
  39. }
  40. return Mp[n]=t;
  41. }
  42. vector<P>rep;
  43. void pt(vi cur,LL ned){
  44. if(cur.empty())return;
  45. bool flag=1;
  46. for(int i=0;i<cur.size()&&flag;i++){
  47. for(int j=i+1;j<cur.size()&&flag;j++){
  48. P t1=a[cur[i]],t2=a[cur[j]];
  49. vi vl,vr;
  50. for(int k=0;k<cur.size();k++){
  51. if(k==i||k==j)continue;
  52. if(cal(t1,t2,a[cur[k]]))vl.push_back(cur[k]);
  53. else vr.push_back(cur[k]);
  54. }
  55. if(vl.size()&1)continue;
  56. sort(vl.begin(),vl.end(),cmp);
  57. sort(vr.begin(),vr.end(),cmp);
  58. LL res1=Mp[vl.size()];
  59. LL res2=Mp[vr.size()];
  60. if(ned>=res1*res2)ned-=res1*res2;
  61. else{
  62. rep.push_back(t1);
  63. rep.push_back(t2);
  64. pt(vl,ned/res2);
  65. pt(vr,ned%res2);
  66. flag=0;
  67. break;
  68. }
  69. }
  70. }
  71. }
  72. int main(){
  73. freopen("dnc.in","r",stdin);
  74. freopen("dnc.out","w",stdout);
  75. //cal(P(0,0),P(2,0),P(2,1));
  76. while(scanf("%d",&n)!=EOF){
  77. for(int i=0;i<n;i++){
  78. int x,y;
  79. scanf("%d%d",&x,&y);
  80. a[i]=P(x,y);
  81. }
  82. vi ori(n,0);
  83. for(int i=0;i<n;i++)ori[i]=i;
  84. sort(ori.begin(),ori.end(),cmp);
  85. memset(Mp,-1,sizeof Mp);
  86. dfs(n);
  87. // for(int i=1;i<=n;i++)printf("%lld ",Mp[i]);puts("");
  88. rep.clear();
  89. LL k;scanf("%lld",&k);
  90. pt(ori,k);
  91. for(int i=0;i<rep.size();i++)printf("%d %d\n",rep[i].x,rep[i].y);
  92. }
  93. }
  94. /*
  95. a[r]-a[l]<=lim
  96. ask max r
  97. a[r]<=a[l]+lim
  98. */

  

F. Doubling

大范围直接$/2$构造,小范围DP求解。

  1. #include<cstdio>
  2. #include<algorithm>
  3. #include<string>
  4. #include<iostream>
  5. using namespace std;
  6. typedef long long ll;
  7. const int N=200010;
  8. const int inf=100000000;
  9. typedef pair<int,string>P;
  10. int n,i,j;
  11. P f[111];
  12. string cal(int n){
  13. if(n<=100)return f[n].second;
  14. if(n&1)return cal(n-1)+"1";
  15. return "["+cal(n/2)+"]";
  16. }
  17. int main(){
  18. freopen("doubling.in","r",stdin);
  19. freopen("doubling.out","w",stdout);
  20. scanf("%d",&n);
  21. f[0]=P(0,"");
  22. f[1]=P(1,"1");
  23. f[2]=P(2,"11");
  24. for(i=3;i<=100;i++){
  25. f[i]=P(inf,"");
  26. for(j=1;j<i;j++){
  27. P x=f[j];
  28. x.first+=f[i-j].first;
  29. x.second+=f[i-j].second;
  30. f[i]=min(f[i],x);
  31. }
  32. if(i%2==0){
  33. P x(f[i/2].first+2,"["+f[i/2].second+"]");
  34. f[i]=min(f[i],x);
  35. }
  36. }
  37. cout<<cal(n)<<endl;
  38. return 0;
  39. }
  40. /*
  41. a[r]-a[l]<=lim
  42. ask max r
  43. a[r]<=a[l]+lim
  44. */

  

G. New Collection

随机100轮算出期望集合大小,然后找到差距最近的即可。

  1. #include <bits/stdc++.h>
  2. using namespace std ;
  3.  
  4. typedef long long LL ;
  5. typedef pair < int , int > pii ;
  6.  
  7. #define getid( l , r ) l + r | ( l != r )
  8.  
  9. set < string> s ;
  10.  
  11. double magic[7]={10.0,100.0,999.96,6325.61,9517.19,9950.67,9995.01};
  12.  
  13. void solve () {
  14. string c ;
  15. for ( int i = 1 ; i <= 10000 ; ++ i ) {
  16. cout << "+" << endl ;
  17. fflush ( stdout ) ;
  18. cin >> c ;
  19. s.insert(c);
  20. }
  21. int x = ( int ) s.size () ;
  22. double ret=1e9;
  23. int ans;
  24. for(int i=0;i<7;i++){
  25. double now=fabs(1.0*x-magic[i]);
  26. if(now<ret)ret=now,ans=i;
  27. }
  28. int fin=1;
  29. for(int i=0;i<=ans;i++)fin*=10;
  30. printf("= %d\n",fin);
  31. fflush ( stdout ) ;
  32.  
  33. }
  34.  
  35. int main () {
  36. solve () ;
  37. return 0 ;
  38. }

  

H. Path or Coloring

贪心染色,如果可以$k$染色,那么就好了,否则必然存在长度为$k$的简单路径。

  1. #include<cstdio>
  2. #include<algorithm>
  3. #include<string>
  4. #include<iostream>
  5. #include<cstdlib>
  6. using namespace std;
  7. typedef long long ll;
  8. const int N=1010;
  9. const int M=20010;
  10. const int inf=100000000;
  11. int Case,n,m,K,i,j,x,y,g[N],v[M],nxt[M],ed,vis[N],col[N],pos;
  12.  
  13. inline void add(int x,int y){v[++ed]=y;nxt[ed]=g[x];g[x]=ed;}
  14.  
  15. void dfs(int x){
  16. pos++;
  17. for(int i=g[x];i;i=nxt[i])if(col[v[i]])vis[col[v[i]]]=pos;
  18. for(int i=1;;i++)if(vis[i]<pos){
  19. col[x]=i;
  20. break;
  21. }
  22. for(int i=g[x];i;i=nxt[i])if(!col[v[i]])dfs(v[i]);
  23. }
  24.  
  25. void solve(){
  26. scanf("%d%d%d",&n,&m,&K);
  27. for(ed=0,i=1;i<=n;i++)g[i]=col[i]=0;
  28. while(m--)scanf("%d%d",&x,&y),add(x,y),add(y,x);
  29. for(i=1;i<=n;i++)if(!col[i])dfs(i);
  30. bool flag=0;
  31. for(i=1;i<=n;i++)if(col[i]>K){flag=1;break;}
  32. if(!flag){
  33. printf("coloring");
  34. for(i=1;i<=n;i++)printf(" %d",col[i]);
  35. return;
  36. }
  37. for(i=1;i<=n;i++)if(col[i]==K+1){x=i;break;}
  38. printf("path");
  39. for(i=1;i<=K+1;i++){
  40. printf(" %d",x);
  41. for(j=g[x];j;j=nxt[j])if(col[v[j]]==col[x]-1){
  42. x=v[j];
  43. break;
  44. }
  45. }
  46. }
  47.  
  48. int main(){
  49. freopen("pathorcoloring.in","r",stdin);
  50. freopen("pathorcoloring.out","w",stdout);
  51. scanf("%d",&Case);
  52. while(Case--){
  53. solve();
  54. puts("");
  55. }
  56. }

  

I. Double Shuffle

留坑。

J. Timer

按题意模拟。

  1. #include <bits/stdc++.h>
  2. using namespace std ;
  3.  
  4. typedef long long LL ;
  5. typedef pair < int , int > pii ;
  6.  
  7. #define clr( a , x ) memset ( a , x , sizeof a )
  8.  
  9. #define getid( l , r ) l + r | ( l != r )
  10.  
  11. const int MAXN = 100005 ;
  12.  
  13. char s[12][65] ;
  14. char a[12][MAXN] ;
  15. char digit[10][8][9] = {
  16. {
  17. ".XXXXX..",
  18. "XX..XXX.",
  19. "XX.XXXX.",
  20. "XXXX.XX.",
  21. "XXX..XX.",
  22. "XXX..XX.",
  23. ".XXXXX..",
  24. "........",
  25. },
  26. {
  27. "...XX...",
  28. "..XXX...",
  29. ".XXXX...",
  30. "...XX...",
  31. "...XX...",
  32. "...XX...",
  33. ".XXXXXX.",
  34. "........",
  35. },
  36. {
  37. ".XXXXX..",
  38. "XX...XX.",
  39. ".....XX.",
  40. "...XXX..",
  41. ".XXX....",
  42. "XX......",
  43. "XXXXXXX.",
  44. "........",
  45. },
  46. {
  47. ".XXXXX..",
  48. "XX...XX.",
  49. ".....XX.",
  50. "..XXXX..",
  51. ".....XX.",
  52. "XX...XX.",
  53. ".XXXXX..",
  54. "........",
  55. },
  56. {
  57. "...XXX..",
  58. "..XXXX..",
  59. ".XX.XX..",
  60. "XX..XX..",
  61. "XXXXXXX.",
  62. "....XX..",
  63. "...XXXX.",
  64. "........",
  65. },
  66. {
  67. "XXXXXXX.",
  68. "XX......",
  69. "XXXXXX..",
  70. ".....XX.",
  71. ".....XX.",
  72. "XX...XX.",
  73. ".XXXXX..",
  74. "........",
  75. },
  76. {
  77. ".XXXXX..",
  78. "XX...XX.",
  79. "XX......",
  80. "XXXXXX..",
  81. "XX...XX.",
  82. "XX...XX.",
  83. ".XXXXX..",
  84. "........",
  85. },
  86. {
  87. "XXXXXXX.",
  88. "XX...XX.",
  89. "X....XX.",
  90. "....XX..",
  91. "...XX...",
  92. "..XX....",
  93. "..XX....",
  94. "........",
  95. },
  96. {
  97. ".XXXXX..",
  98. "XX...XX.",
  99. "XX...XX.",
  100. ".XXXXX..",
  101. "XX...XX.",
  102. "XX...XX.",
  103. ".XXXXX..",
  104. "........",
  105. },
  106. {
  107. ".XXXXX..",
  108. "XX...XX.",
  109. "XX...XX.",
  110. ".XXXXXX.",
  111. ".....XX.",
  112. "XX...XX.",
  113. ".XXXXX..",
  114.  
  115. "........",
  116. },
  117. } ;
  118.  
  119. void paint ( int x , int v ) {
  120. for ( int i = 3 ; i < 10 ; ++ i ) {
  121. for ( int j = x ; j < x + 8 ; ++ j ) {
  122. a[i][j] = digit[v][i - 3][j - x] ;
  123. }
  124. }
  125. }
  126.  
  127. void mark ( int x ) {
  128. a[0][x + 3] = a[0][x + 4] = a[1][x + 3] = a[1][x + 4] = 'X' ;
  129. }
  130.  
  131. int check ( int x ) {
  132. for ( int i = 0 ; i < 12 ; ++ i ) {
  133. for ( int j = 0 ; j < 60 ; ++ j ) {
  134. if ( s[i][j] == '-' ) continue ;
  135. if ( s[i][j] != a[i][x + j] ) return 0 ;
  136. }
  137. }
  138. return 1 ;
  139. }
  140.  
  141. void solve () {
  142. for ( int i = 0 ; i < 12 ; ++ i ) {
  143. scanf ( "%s" , s[i] ) ;
  144. }
  145. int ans = 3470 ;
  146. for ( int i = 0 ; ; ++ i ) {
  147. if ( check ( i ) ) {
  148. printf ( "%02d:%02d\n" , ans / 60 , ans % 60 ) ;
  149. return ;
  150. }
  151. ans -= 5 ;
  152. if ( ans < 0 ) ans += 3600 ;
  153. }
  154. }
  155.  
  156. void show ( int l , int r ) {
  157. for ( int i = 0 ; i < 12 ; ++ i ) {
  158. for ( int j = l ; j < r ; ++ j ) {
  159. printf ( "%c" , a[i][j] ) ;
  160. }
  161. puts ( "" ) ;
  162. }
  163. }
  164.  
  165. int main () {
  166. clr ( a , '.' ) ;
  167. int x = 0 ;
  168. for ( int i = 0 ; i < 50000 ; i += 12 ) {
  169. if ( x % 5 == 0 ) {
  170. if ( x < 10 ) paint ( i , x ) ;
  171. else {
  172. paint ( i + 4 , x % 10 ) ;
  173. paint ( i - 4 , x / 10 ) ;
  174. }
  175. }
  176. mark ( i ) ;
  177. x = ( x - 1 + 60 ) % 60 ;
  178. }
  179. //show ( 0 , 110 ) ;
  180. solve () ;
  181. /*
  182. for ( int i = 0 ; i < 10 ; ++ i ) {
  183. scanf ( "%d" , &n ) ;
  184. printf ( "{\n" ) ;
  185. for ( int j = 0 ; j < 8 ; ++ j ) {
  186. scanf ( "%s" , tmp ) ;
  187. printf ( "\"%s\",\n", tmp );
  188. }
  189. printf ( "},\n" ) ;
  190. }
  191. */
  192. return 0 ;
  193. }

  

K. Ultraprime Numbers

答案最多只有$9$项。

  1. #include<cstdio>
  2. #include<algorithm>
  3. #include<string>
  4. #include<iostream>
  5. using namespace std;
  6. typedef long long ll;
  7. const int N=2010;
  8. const int inf=100000000;
  9. int n,i,j,p[N/10],tot;bool is[N],v[N];
  10. int q[1111],ans;
  11. inline bool check(int x){
  12. if(!is[x])return 0;
  13. static int f[100];
  14. int n=0;
  15. while(x)f[++n]=x%10,x/=10;
  16. for(int i=n;i;i--){
  17. int t=0;
  18. for(int j=i;j;j--){
  19. t=t*10+f[j];
  20. if(!is[t])return 0;
  21. }
  22. }
  23. return 1;
  24. }
  25. int main(){
  26. freopen("ultraprime.in","r",stdin);
  27. freopen("ultraprime.out","w",stdout);
  28. //scanf("%d",&n);
  29. n=2000;
  30. for(i=2;i<=n;i++){
  31. if(!v[i])is[i]=1,p[tot++]=i;
  32. for(j=0;j<tot;j++){
  33. if(i*p[j]>n)break;
  34. v[i*p[j]]=1;
  35. if(i%p[j]==0)break;
  36. }
  37. }
  38. for(i=2;i<=n;i++)if(check(i)){
  39. q[++ans]=i;
  40. // printf("%d %d\n",ans,i);
  41. if(ans==1000)break;
  42. }
  43. scanf("%d",&n);
  44. if(ans<n)puts("-1");else printf("%d",q[n]);
  45. return 0;
  46. }
  47. /*
  48. a[r]-a[l]<=lim
  49. ask max r
  50. a[r]<=a[l]+lim
  51. */

  

XVII Open Cup named after E.V. Pankratiev. GP of SPb的更多相关文章

  1. XVII Open Cup named after E.V. Pankratiev. GP of Two Capitals

    A. Artifact Guarding 选出的守卫需要满足$\max(a+b)\leq \sum a$,从小到大枚举每个值作为$\max(a+b)$,在权值线段树上找到最大的若干个$a$即可. 时间 ...

  2. XVII Open Cup named after E.V. Pankratiev. GP of Moscow Workshops

    A. Centroid Tree 枚举至多两个重心作为根,检查对于每个点是否都满足$2size[x]\leq size[father[x]]$即可. #include<stdio.h> # ...

  3. XVII Open Cup named after E.V. Pankratiev. GP of Siberia, Division 1

    1. Ski race 枚举枚举倍数判断即可.时间复杂度$O(n\log m)$. #include<cstdio> #include<algorithm> using nam ...

  4. XVII Open Cup named after E.V. Pankratiev. GP of Tatarstan

    A. Arithmetic Derivative 形如$p^p(p是质数)$的数的比值为$1$,用$k$个这种数相乘得到的数的比值为$k$,爆搜即可. #include<cstdio> # ...

  5. XVI Open Cup named after E.V. Pankratiev. GP of SPB

    A. Bubbles 枚举两个点,求出垂直平分线与$x$轴的交点,答案=交点数+1. 时间复杂度$O(n^2\log n)$. #include<cstdio> #include<a ...

  6. XIV Open Cup named after E.V. Pankratiev. GP of SPb

    A. Bracket Expression 直接按题意模拟即可. 时间复杂度$O(n)$. #include<stdio.h> #include<algorithm> #inc ...

  7. XIII Open Cup named after E.V. Pankratiev. GP of SPb

    A. Graph Coloring 答案为$1$很好判,为$2$只需要二分图染色,对于$3$,首先爆搜哪些边要染成第$3$种颜色,然后二分图染色判定即可. B. Decimal Fraction 枚举 ...

  8. XVIII Open Cup named after E.V. Pankratiev. GP of SPb

    contest Link A. Base i − 1 Notation solved by sdcgvhgj 238 求出a+b的2进制后从低位到高两位两位地转化为i-1进制 i-1进制的第2k位和第 ...

  9. XVII Open Cup named after E.V. Pankratiev. XXI Ural Championship

    A. Apple 按题意模拟即可. #include<stdio.h> #include<iostream> #include<string.h> #include ...

随机推荐

  1. 使用node.js生成excel报表下载(excel-export express篇)

    引言:日常工作中已经有许多应用功能块使用了nodejs作为web服务器,而生成报表下载也是我们在传统应用. java中提供了2套类库实现(jxl 和POI),.NET 作为微软的亲儿子更加不用说,各种 ...

  2. web自动化工具-开篇

    web自动化工具-开篇 最近几年,前端技术风一样的速度迭代更新,各种框架工具雨后春笋般涌现,作为一个平凡的开发者,也只能在洪流中沉沉浮浮,微不足道,以前前端叫做切图仔.美工,如今改了称号叫前端工程师, ...

  3. getPx function

    function getPX(str){  return str.substring(0,str.indexOf('px'));}

  4. php 路径

    //魔术变量,获取当前文件的绝对路径 echo "__FILE__: ========> ".__FILE__; echo '<br/>'; //魔术变量,获取当 ...

  5. curl及postman专题

    一. 步骤 1: 下载cURL工具 使用您的Windows机器从cURL web站点下载最新版本的cURL: (1) 通常情况下,多数的Windows用户可以从官网下载页面http://curl.ha ...

  6. Sass 的调试

    Sass 的调试 Sass 调试一直以来都是一件头痛的事情,使用 Sass 的同学都希望能在浏览器中直接调试 Sass 文件,能找到对应的行数.值得庆幸的是,现在实现并不是一件难事,只要你的浏览器支持 ...

  7. 【http】四种常见的 POST 提交数据方式

    来源:http://www.cnblogs.com/aaronjs/p/4165049.html HTTP/1.1 协议规定的 HTTP 请求方法有 OPTIONS.GET.HEAD.POST.PUT ...

  8. C#操作XML之读取数据

    List<Ztree> ZTreeList = new List<Ztree>(); XDocument MenuConfigDoc = XDocument.Load(&quo ...

  9. 【笔记】js的内存字节转化

    function convertSize(size) {                if(!size) {                     return '0 Bytes';       ...

  10. inotify监控文件变化

    1.安装inotify-tools yum install make  gcc gcc-c++  #安装编译工具 inotify-tools下载地址:http://github.com/downloa ...