状态 题号 竞赛题号 标题
  1572 A 九鼎之尊(一)
  1573 B 九鼎之尊(二)
  1453 C 筛法(Sieve Method)
  1134 D 亲密数(close numbers)
  1030 E 求最大公约数
  1106 F 幸运的编号
  1128 G 回文质数
  1018 H 选太子(select the prince)
  1424 I 甲说乙在说谎
  1037 J 合并有序数组(Merging sorted array)
  1451 K 叙拉古猜长度
  1449 L 八皇后的冲突问题
Problem A
九鼎之尊(一)
时限:1000ms 内存限制:10000K 总时限:3000ms
描述:

夏朝初年,夏王大禹划分天下为九州,令九州州牧贡献青铜,铸造九鼎,将全国九州的名山大川、奇异之物镌刻于九鼎之身,以一鼎象征一州。这样,九州就成为中国的代名词。九鼎成了王权至高无上、国家统一昌盛的象征。
周幽王烽火戏诸侯之后,周王室的地位快速下降,到了周赧(nǎn)王时期,天子的地位已大不如前,只是名义上的统治者了。秦武王想取而代之,周赧王说:这里有九个鼎,咱俩数鼎,每次可以数一个或者两个,谁数到最后那个“龙文赤鼎”并且把它举起来谁得天下,秦武王很高兴,就与周赧王开始数鼎。实际上周赧王知道最后那个龙文赤鼎铸造时用了很多黄金,实际重量比其它的重很多,秦武王根本就不可能举起来。秦武王霸道的说我先数:、,周王:、,秦王:、,周王:、,秦王:。按游戏规则,秦王获得了举鼎资格。世事难料,秦王居然把鼎举起来了,但是由于“龙纹赤鼎”太重了,举起来已经受了内伤,又被鼎砸伤胫骨,当晚气绝身亡。请叙述周王心理变化过程。

输入:

输入鼎的个正整数n。

输出:

假设双方都足够聪明,不会有失误,谁数到最后一个数谁输,如果先数可以必胜则输出“Yes”,否则输出“No”。

输入样例:

输出样例:

Yes

Problem A 九鼎之尊(一)

 #include <iostream>
 using namespace std;

 int main()
 {
     int n;
     while(cin>>n)
     {
          == )
             cout<<"No"<<endl;
         else
             cout<<"Yes"<<endl;
     }
     ;
 }
 /*
 n % 3:
 0: 数2个(1,2)
 1:X
 2:数1个(1)
 */

代码A

这个问题可以理解为 “谁报数字n,谁输”,报数只能为1个 或 2个
对于不同的n,分为“先数必输”或“先数必赢”的问题

    一、假定 n% == :
这会是“先数必赢”:
    你如果想赢,那你要保证两点:
        . 在一个回合中,要保证让对方报3的倍数;
        . 3的倍数(,,9等),自己绝对不要报
        . 因为最后的n也是3的倍数,所以这样继续下去的话,最后的n一定被对方报
        e.g:  n=,“先数必赢”
                () 你要报1,;让对方报3或者3,
                () 对方若报3,你就报45;让对方报6
                () 对方若报3,,你就报5;让对方报6
                () 以此类推,最后一个30,必定被对方报上

    二、假定 n% == :
这会是“先数必输”:
    这种情况下,“能被n模1的数”(,,...)是不能报的,但是如果你先数,1必定是你先报;如果对方足够聪明,那么他可以保证4,,,,n都将被你报

    三、假定n% == :
这会是“先数必赢”:
    这种情况下,“能被n模2的数”(,,...)是不能报的,所以你可以先报1,让对方报2,只要开了这个头,就可以保证对方一直报5,,...n

所以代码很简单,只需要判断 n模3等于多少就行了,,

如果不明白这个规律,可以通过穷举的方式列举几个数,,可以发现“先数必输”每三个数出现一次

解析A

#include <iostream>
#include <cstdio>
using namespace std;

int main()
{
    int n;
    ] = {};
    pot[] = ;
    pot[] = ;
    pot[] = ;
    while(cin>>n)
    {
        ; i<=n; i++)
        {
            /*
              前两个数里面,只要有一个0,就可以让对方再取必输;
              除非2个都为1,那样无论你怎么取,对方再取必赢
              此代码参考九鼎之尊(二)的解析
            */
            ] && pot[i-])) // 或if(int(pot[i-1] && pot[i-2]) == 0) int不可少
            {
                pot[i] = ;
            }
            else
                pot[i] = ;
        }
        )
            cout<<"Yes"<<endl;
        else
            cout<<"No"<<endl;
    }
    ;
}

代码A - 模拟过程

Problem B
九鼎之尊(二)
时限:1000ms 内存限制:10000K 总时限:3000ms
描述:

秦人雄视天下之心,由来已久,秦武王死后,秦昭襄王即位,励精图治,继续扩张,多年之后已经具备了统一天下的实力,周赧王对秦昭襄王说:这里有n个鼎(≤n≤),咱俩轮流数鼎,谁数到最后一个鼎谁做天子(这次不用举鼎:-D),要求每次数的数量必须是1、2和4这三个数字之一。你能否写一个程序帮秦昭襄王算一下,要想取得胜利应该先数还是后数?

输入:

输入一个正整数n。

输出:

如果先数必胜则输出“Yes”,否则输出“No”。

输入样例:

输出样例:

No

Problem B 九鼎之尊(二)

 #include <iostream>
 using namespace std;

 int main()
 {
     int n;
     while(cin>>n)
     {
          == )
             cout<<"No"<<endl;
         else
             cout<<"Yes"<<endl;
     }
     ;
 }

代码B

这是谁先抢占n,谁赢的问题。每次可以报数 1个、2个、4个
前几个数字(,,,)可以很简单就判断出来:
n= : 必赢
n= : 必赢
n= : 必输
n= : 必赢
对于5之后的问题,可以通过前4次判断出来:
n= :
    你可以理解为你先数一次,然后让对方先数必输,其实是对方是第二次数
    你可以数1,,;
    你若数1个,还剩4个,通过我们前面已经得出的规律,对方先数必赢(再数)
    你若数2个,还剩3个,通过我们前面已经得出的规律,对方先数必输(再数)
    你若数4个,还剩1个,通过我们前面已经得出的规律,对方先数必赢(再数)
所以如果你足够聪明,可以通过数2赢得胜利
得到:
n= : 必赢
n= : 必赢
n= : 必输
n= : 必赢
n= : 必赢

n= :
    你可以数1,,;
你若数1个,还剩5个,对方再数必赢
你若数2个,还剩4个,对方再数必赢
你若数4个,还剩2个,对方再数必赢

所以
n= : 必输

所以可以通过一个for循环,从5开始不断判断,不断丰富数组(存放规律的)
....
也可以通过穷举的方法,列举一些,可以发现3,,,....3n 必输

解析B

#include <iostream>
#include <cstdio>
using namespace std;

int main()
{
    int n;
    ] = {};
    pot[] = ;
    pot[] = ;
    pot[] = ;
    pot[] = ;
    while(cin>>n)
    {
        ; i<=n; i++)
        {
            ] && pot[i-] && pot[i-]))
            {
                pot[i] = ;
            }
            else
                pot[i] = ;
        }
        )
            cout<<"Yes"<<endl;
        else
            cout<<"No"<<endl;
    }
    ;
}

代码B -模拟过程

 Problem C
 筛法(Sieve Method)
 时限:1000ms 内存限制:10000K 总时限:3000ms
 描述:

 用筛法求[a,b]中的素数。
 Find out the prime numbers in [a, b]. 

 输入:

 2个正整数:a b。
 a、b均在1000以内,且a小于等于b。
  positive integers: a, b. Both a and b are less than or equal  and a is less than or equal to b.

 输出:

 [a b]区间内的所有素数,每个单独一行。
 All primes in [a, b], each one in a row.

 输入样例:

 输出样例:

Problem C 筛法(Sieve Method)

 #include <iostream>
 #include <cmath>
 #include <cstring>
 using namespace std;

 int main()
 {
     int a,b;
     ];
     int i,j;
     memset(flag, , sizeof(flag));
     while(cin>>a && cin>>b)
     {
         flag[] = ;
         ; i<=sqrt(b); i++)
         {
             if(flag[i])
             {
                 ; j<=b/i; j++)
                 {
                     flag[i*j] = ;
                 }
             }
         }
         for(i=a; i<=b; i++)
         {
             if(flag[i])
                 cout<<i<<endl;
         }
     }
     ;
 }

代码C

 参考百度百科“筛法”定义:
 筛法是一种简单检定素数的算法。

 百度百科“筛法”代码:
 以下是利用筛法求100以内素数的代码:
 #include<cmath>
 #include<cstring>
 #include<iostream>
 using namespace std;
 int main(int argc, char* argv[])
 {
     ;
     ];
     int i, j;

     memset(a, , sizeof(a));
     a[] = ;
     ; i <= sqrt(n); i ++)
     {
         if(a[i])
         {
             ; j <= n/i; j ++)
             {
                 a[i*j] = ;
             }
         }
     }
     ; i <= n; i ++)
     {
         if(a[i]) cout << i << " ";
     }
     ;

 }

解析C

Problem D
亲密数(close numbers)
时限:2000ms 内存限制:10000K 总时限:2000ms
描述:

两个整数a和b,如果a的不包含自身的因子之和等于b,并且b的不包含自身的因子和等于a,且a不等于b,则称a,b为一对亲密数。
找出满足a<=10000且b<=10000的全部亲密数对。
A pair of close numbers(a and b) .

输入:

本题无输入。
None

输出:

升序输出所有满足条件的数对,每对数字一行,小数字在前,大数字在后,用空格分隔。注意:本题要求程序效率要高,直接写成二重循环肯定超时。
Output all pair of close numbers in ascending order,and each pair occupies one line with the smaller one in front and the pair is separated by a space.

输入样例:

无
输出样例:

无

Problem D 亲密数(close numbers)

 #include <iostream>
 using namespace std;

 int sum_factor(int n);
 int main()
 {
     int i;
     int sum1;
     ; i<=; i++)
     {
         sum1 = sum_factor(i);
         if(i<sum1 && i==sum_factor(sum1))
         {
             cout<<i<<" "<<sum1<<endl;
         }
     }
     ;
 }

 /*求n的因子之和*/
 int sum_factor(int n)
 {
     ;
     ; i*i<=n; i++)
     {
         )
         {
              || i*i==n)
                 sum += i;
             else
                 sum += i + n/i;
         }
     }
     return sum;
 }

代码D

Problem E
求最大公约数
时限:1000ms 内存限制:10000K 总时限:3000ms
描述:

给你两个正整数a、b,请你编写程序求出它们的最大公约数,并输出这个数 

输入:

两个正整数a、b

输出:

输出最大公约数(以回车结束)

输入样例:

输出样例:

Problem E 求最大公约数

 #include <iostream>
 using namespace std;

 int* divisor(int n);
 ;
 int main()
 {
     int *d;
     int a,b;
     while(cin>>a && cin>>b)
     {
         d = divisor(a);
         ;
         ; i>=; i--)
         {
             )
                 break;
         }
         cout<<d[i]<<endl;

     }
     ;
 }
 int *divisor(int n)
 {
     ];
     ; i<=n; i++)
     {
         )
             d[num++] = i;
     }
     return d;
 }

代码E

Problem F
幸运的编号
时限:1000ms 内存限制:10000K 总时限:3000ms
描述:

有n个人围成一圈,顺序编号。从第一个人开始报数(从1到m),凡报到m的人退出。问最后一个人的编号是多少?

输入:

输入两个正整数n和m

输出:

最后一个人的编号。

输入样例:

输出样例:

Problem F 幸运的编号

 #include <iostream>
 #include <cstring>
 using namespace std;

 int main()
 {
     int n,m;
     int quit; //退出人数
     ];
 //    memset(p, 1, sizeof(p));

     while(cin>>n && cin>>m)
     {
         ; //指针
         ; //报数
         quit = ; //退出人数
         ; a<; a++)
             p[a] = ;
         )
         {
             )
             {
                 num++; //报数
             }
             if(num == m)
             {
                 p[i] = ;
                 quit++;
                 num = ;
             }
             i = (i+) % n;
         }
         ; j<n; j++)
         {
             )
             {
                 cout<<j+<<endl;
                 break;
             }
         }
     }
     ;
 }

代码F

Problem G
回文质数
时限:1000ms 内存限制:10000K 总时限:3000ms
描述:

因为151既是一个质数又是一个回文数(从左到右和从右到左看是一样的),所以151是回文质数.
写一个程序来找出范围[a,b](<=a<b<=,,)间的所有回文质数.

输入:

第一行 两个整数:a和b.

输出:

输出一个回文质数的列表,一行一个.

输入样例:

输出样例:

来源:

USACO

Problem G 回文质数

 #include <iostream>
 #include <cmath>
 using namespace std;

 bool isPrime(int n);
 int getGigit(int n);
 int getPalindrome(int n);
 int getPalindrome_Ou(int n);

 int main()
 {
     int a, b;
     int num; //b的位数
     int pal; //构造的回文数
     while(cin>>a && cin>>b)
     {
         ) //若a<=11
         {
             &&i<=b; i++)
             {
                 if(isPrime(i))
                     cout<<i<<endl;
             }
         }
         num = getGigit(b); //获得b的位数,以便减少回文数生成范围
         ) //因为11是唯一的回文质数,所以11-100都不用考虑,直接从三位的回文素数开始判断
         {
             ; i<pow(,num/+); i++)
             {
                 pal = getPalindrome(i);
                 if(pal>=a && pal<= b)
                 {
                     if(isPrime(pal))
                         cout<<pal<<endl;
                 }
             }
         }
     }
     ;
 }

 /*通过n生成奇数位(2n-1)的回文数*/
 int getPalindrome(int n)
 {
     int palindrome = n;
     n /= ;
     while(n)
     {
         palindrome = palindrome* + n%;
         n /= ;
     }
     return palindrome;

 }

 /*
   通过n生成偶数位(2n)的回文数
   但除了11不存在偶数位的回文数是素数,因为该回文数能被11整除
   所以根本不需要生成偶数位的回文数,这个函数也没有必要
   但是我就是写写而已...
 */
 int getPalindrome_Ou(int n)
 {
     int palindrome2 = n;
     while(n)
     {
         palindrome2 = palindrome2* + n%;
         n /= ;
     }
     return palindrome2;
 }

 /*判断n是否为素数*/
 bool isPrime(int n)
 {
     ; i<=sqrt(n); i++)
     {
         )
         {
             return false;
         }
     }
     return true;
 }

 /*返回n有几位*/
 int getGigit(int n)
 {
     ;
     while(n)
     {
         n /= ;
         count++;
     }
     return count;
 }
 /*
 如果通过两重循环遍历所有,无论是先判断会回文还是先判断素数,都会超时;
 可以先构造出回文数,然后判断是不是素数:
     除11不存在偶数位的回文数是素数,因为该回文数能被11整除,也就说明大于11的满足条件的回文数是奇数位,以中间数为对称轴。
     因大于2的素数都是奇数,故在奇数位回文数中,首位为2、4、6、8的数均不是素数。首位是它们,根据回文数的性质,末尾也是他们。
     因5的任何倍数末尾为5,故在奇数位回文数中,首位为5的数均不是素数。
 */

代码G

Problem H
选太子(select the prince)
时限:1000ms 内存限制:10000K 总时限:3000ms
描述:

某皇帝有2m个儿子,现在要从中选出一个做太子,皇帝不知道该把那一个皇子立为太子,于是决定用下面的方法来选出太子,设每个太子的编号分别1、、、…、2m,按顺时针方向站成一个圆圈,现在从1号太子开始按顺时针方向数,数到第n个人,把他淘汰出局,然后从他的下一个人开始上述过程,当第m个人被淘汰时,转变方向继续从1开始数,重复上述过程,最后剩下的皇子将被立为太子。现在请你写一个程序,计算出几号皇子将被立为太子。

输入:

输入两个正整数m n

Input two positive integer.

输出:

输出太子的编号
Output the number.

输入样例:

输出样例:

Problem H 选太子(select the prince)

 #include <iostream>
 using namespace std;

 int main()
 {
     int n,m;
     int quit; //退出人数
     ];

     while(cin>>m && cin>>n)
     {
         ; //指针
         ; //报数
         quit = ; //退出人数
         ; a<; a++)
             p[a] = ;
         *m-)
         {
             )
             {
                 ++num; //报数
             }
             if(num == n)
             {
                 p[i] = ;
                 ++quit;
                 num = ;
             }
             if(quit < m)
             {
                 i = (i+) % (*m);
             }
             else
             {
                 i = (i-) % (*m);
                 )
                 {
                     i = i + *m;
                 }
             }
         }

         ; j<*m; j++)
         {
             )
             {
                 cout<<j+<<endl;
                 break;
             }
         }
     }
     ;
 }

代码H

Problem I
甲说乙在说谎
时限:1000ms 内存限制:10000K 总时限:3000ms
描述:

甲说乙在说谎,乙说丙在说谎,丙说甲、乙在说谎。
只有一个人说真话。
问,谁说真话?
A、甲;B、乙;C、丙;D、没有人说真话
编程求解谁说的是真话。

输入:

无

输出:

输出说真话的人(甲、乙、丙分别用0、1和2来表示)

输入样例:

无
输出样例:

Problem I 甲说乙在说谎

 #include <iostream>
 using namespace std;

 int main()
 {
     int a,b,c;
     ; a<; a++)
     {
         ; b<; b++)
         {
             ; c<; c++)
             {
                  || !c&&a+b!=))
                 {
                     )
                         cout<<<<endl;
                     )
                         cout<<<<endl;
                     )
                         cout<<<<endl;
                 }
             }
         }
     }
     ;
 }

代码I

Problem J
合并有序数组(Merging sorted array)
时限:1000ms 内存限制:10000K 总时限:3000ms
描述:

给你两个有序且升序的数组,请你把它们合成一个升序数组并输出
Give you two ordered ascending array, you put them into one ascending array and output.

输入:

第一行为一个正整数n,n<= ;
第二行为n个数字,这n个数字用空格隔开
第三行为一个正整数m,m<= ;
第四行为M个数字,这m个数字用空格隔开
The first line ;
The second line are n numbers separated by space
The third ;
The fourth line are m numbers separated by space

输出:

输出合并后的数组,每个数字占一行,
Output the combined array, each number per line,

输入样例:

输出样例:

Problem J 合并有序数组(Merging sorted array)

 #include <iostream>
 using namespace std;

 int main()
 {
     int n, m, i;
     ];
     cin>>n;
     ; i<n; i++)
     {
         cin>>arr[i];
     }
     cin>>m;
     for(i=n; i<m+n; i++)
     {
         cin>>arr[i];
     }
     int temp;
     ; i<m+n-; i++)
     {
         ; j<m+n--i; j++)
         {
             ])
             {
                 temp = arr[j];
                 arr[j] = arr[j+];
                 arr[j+] = temp;
             }
         }
     }
     ; i<m+n; i++)
     {
         cout<<arr[i]<<endl;
     }
     ;
 }

代码J

 #include <iostream>
 using namespace std;

 int main()
 {
     int n, m, i;
     ];
     cin>>n;
     ; i<n; i++)
     {
         cin>>arr[i];
     }
     cin>>m;
     for(i=n; i<m+n; i++)
     {
         cin>>arr[i];
     }
     int temp;
     ; i<m+n; i++)
     {
         ; j<m+n; j++)
         {
             if(arr[i]>arr[j])
             {
                 temp = arr[i];
                 arr[i] = arr[j];
                 arr[j] = temp;
             }
         }
         cout<<arr[i]<<endl;
     }
     ;
 }

代码2

代码1是冒泡排序(排完再循环打印),代码2是选择排序(可以一边排,一边打印)

Problem K
叙拉古猜长度
时限:1000ms 内存限制:10000K 总时限:3000ms
描述:

叙拉古猜想又称科拉兹猜想、哈塞猜想、3n+1猜想、乌拉姆猜想或角谷猜想,是指对于每一个大于1的正整数,如果它是奇数,则将其乘3加1,如果它是偶数,则将除以2,如此循环,最终将得到1。输入一个数,求按照叙拉古猜想到达1的序列的长度。

输入:

大于2的自然数。

输出:

输出序列长度。

输入样例:

输出样例:

Problem K 叙拉古猜长度

 #include <iostream>
 using namespace std;

 int main()
 {
     int n, num;
     while(cin>>n)
     {
         num = ;
         )
         {
              == )
                 n /= ;
             else
                 n = (*n) + ;
             num++;
         }
         cout<<num+<<endl;
     }
     ;
 }

代码K

Problem L
八皇后的冲突问题
时限:1000ms 内存限制:10000K 总时限:3000ms
描述:

八皇后问题是在8*8的国际象棋的棋盘上放置8个皇后,有多少种不同的放置方法,要求它们互相都不冲突(冲突是指在某一行或者某一列或者某一条斜线上出现两个皇后,因为这两个皇后可以互相吃掉对方)。其中行号和列号都从0开始。现在前三行(~2行)每行一个皇后已经放置好的情况下,第3行的皇后想要放在给定的列,需要你编一个程序判断它是否与前三行的皇后冲突。

输入:

首先输入3行8列数据(~2行,~7列),1表示有皇后,0表示没有皇后
然后输入第3行要摆放的皇后的列号。

输出:

第3行所给的列号处如果能放皇后,则输出Yes换行,不可以的话输出No,注意要有回车。

输入样例:

输出样例:

Yes

Problem L 八皇后的冲突问题

 #include <iostream>
 using namespace std;

 int main()
 {
     ][];
     int n;
     ; i<; i++)
     {
         ; j<; j++)
         {
             cin>>queen[i][j];
         }
     }
     int flag;
     while(cin>>n)
     {
         flag = ;
         //判段列上有没有皇后
         ; i<; i++)
         {
             )
             {
                 flag = ;
 //                cout<<"列"<<endl;
             }
         }
         //判断左斜有没有皇后
         ,j=n-; i>=,j>=; i--,j--)
         {
             )
             {
                 flag = ;
 //                cout<<"zuo"<<endl;
             }
         }
         //判断右斜有没有皇后
         ,j=n+; i>=,j<; i--,j++)
         {

             )
             {
 //                cout<<"you"<<endl;
                 flag = ;
             }
         }
         if(flag)
             cout<<"Yes"<<endl;
         else
             cout<<"No"<<endl;
     }
     ;
 }

代码L

Noj - 在线强化训练2的更多相关文章

  1. Noj - 在线强化训练3

    状态 题号 竞赛题号 标题   1091 A 求解逆波兰表达式(Calculate the reverse Polish notation)   1017 B 数列   1323 C 穷举n位二进制数 ...

  2. Noj - 在线强化训练4

    状态 题号 竞赛题号 标题 × 1092 A 童年的回忆——计算24 × 1145 B 求图像的周长 × 1144 C 农场灌溉问题 × 1202 D 数独游戏 × 1243 E 循环赛日程表 × 1 ...

  3. Noj - 在线强化训练1

      1445 A 求n个整数的和   1564 B 判断一个数是否是完全数   1011 C 判素数(Prime number)   1566 D 输入一组整数,找出最小值   1200 E 判断三角 ...

  4. Hinton胶囊网络后最新研究:用“在线蒸馏”训练大规模分布式神经网络

    Hinton胶囊网络后最新研究:用“在线蒸馏”训练大规模分布式神经网络 朱晓霞发表于目标检测和深度学习订阅 457 广告关闭 11.11 智慧上云 云服务器企业新用户优先购,享双11同等价格 立即抢购 ...

  5. Android:JNI强化训练

    一.前言 Java本机接口(Java Native Interface (JNI))是本机编程接口,它是JDK的一部分,JNI它提供了若干的API,实现了和Java和其他通信(主要是C&C++ ...

  6. Python强化训练笔记(七)——使用deque队列以及将对象保存为文件

    collections模块中的deque对象是一个队列,它有着正常队列的先进先出原则.我们可以利用这个对象来实现数据的保存功能. 例如,现有一个猜数字大小的游戏,系统开始会随机roll点一个0-100 ...

  7. Python强化训练笔记(六)——让字典保持有序性

    python的字典是一个非常方便的数据结构,使用它我们可以轻易的根据姓名(键)来找到他的成绩,排名等(值),而不用去遍历整个数据集. 例如:{'Lee': [1, 100], 'Jane': [2, ...

  8. Python强化训练笔记(五)——找出多个字典中的公共键

    在这个问题中,我们期望得到的结果是找到这三轮比赛中,每轮都进球的球员都有谁.下面用python来模拟一下,先生成一批数据: >>> from random import randin ...

  9. ACM: 强化训练-Beautiful People-最长递增子序列变形-DP

    199. Beautiful People time limit per test: 0.25 sec. memory limit per test: 65536 KB input: standard ...

随机推荐

  1. 连接mysql(建表和删表)

    from sqlalchemy.ext.declarative import declarative_base##拿到父类from sqlalchemy import Column##拿到字段from ...

  2. 洛谷P5072 [Ynoi2015]盼君勿忘 [莫队]

    传送门 辣鸡卡常题目浪费我一下午-- 思路 显然是一道莫队. 假设区间长度为\(len\),\(x\)的出现次数为\(k\),那么\(x\)的贡献就是\(x(2^{len-k}(2^k-1))\),即 ...

  3. 【进阶1-1期】理解JavaScript 中的执行上下文和执行栈(转)

    这是我在公众号(高级前端进阶)看到的文章,现在做笔记 https://mp.weixin.qq.com/s/tNl5B4uGdMkJ2bNdbbo82g 阅读笔记 执行上下文是当前 JavaScrip ...

  4. re_test

    https://www.cnblogs.com/zhaof/p/6925674.html#4152933 https://www.cnblogs.com/lanyinhao/p/9165747.htm ...

  5. vue-cli3初尝试之路径别名配置

    let path = require('path') function resolve(dir) { return path.join(__dirname, dir) } module.exports ...

  6. 编辑技巧之如何跟PDF文档添加贝茨编号

    除了office办公软件,pdf文档现在使用的频率也便多了,不论是工作或是学习,阅读都用阅读器打开就行了,可是如果想要修改.编辑那只用阅读器是无法进行编辑的,其实PDF文件的编辑还是很方便,使用PDF ...

  7. mybatis的插件分析

    mybatis插件回在解析配置是通过pluginAll方法将插件添加到插件链中,然后会在sqlSessionfactory.openSession()方法中将插件链绑到executor上,在执行sql ...

  8. C++设计模式——观察者模式(转)

    前言 之前做了一个性能测试的项目,就是需要对现在的产品进行性能测试,获得测试数据,然后书写测试报告,并提出合理化的改善意见.项目很简单,我们获得了一系列性能测试数据,对于数据,我们需要在Excel中制 ...

  9. 启动tomcat出现内存溢出错误 java.lang.OutOfMemoryError: PermGen space

    三种因素引起: 1.jvm(jdk)的内存引起. 2. eclipse的内存引起. 3.tomcat的内存引起. 1.解决方法: 2.解决方法: 解决问题的方式就是:修改了安装目录eclipse.in ...

  10. python---自己实现二分法列表查找

    这是以我自己的思维来实现的,没有用递归. # coding = utf-8 # 二分查找,适用于有序列表,日常编程用不到,因为index函数可以搞定的. # 查找到数字,返回列表中的下标,找不到数字, ...