Competitive Programming
ACSL STRING
December 1, 2019
Question My thought Nothing… The problem is pretty easy, however it troubled me for a quite long time.
Intro to Neural Network
February 7, 2019
The server’s previous technical issues have caused the loss of images and data.
济南Day3 坐标型动态规划及背包
January 29, 2019
花店橱窗布置 思路 f[i][j]f[i][j]表示前i个花瓶前j个花束的最大美学价值 f[i][j]=max(f[i−1][k],f[i][j])f[i][j]=max(f[i−1][k],f[i][j]) 当然还有另外一种思路(*太强了!!!*):
高精度模板
January 29, 2019
define N 1e5 struct bign { int len; int v[N]; // 赋值 bign=bign bign operator = (char* s) { len=strlen(s); memset(v,0,sizeof(v)); for(int i=0;i<len;i++) v[i]=s[len-i-1]-'0'; return *this; } //赋值 bign=int bign operator = (int x) { char s[N]; sprintf(s,"%d",x); return *this=s; } // 高精加 bign operator + (const bign &b) const { bign c; memset(c.
树形DP
January 29, 2019
二叉苹果树 思路 $dp[u][j表示节点u留下j条边的最大价值,每一次决策只有三种情况:剪左子树,剪右子树,两个都不剪 剪左边:dp[u][j]=dp[rson][j−1]+v[rson]dp[u][j]=dp[rson][j−1]+v[rson],同理,剪右边:dp[u][j]=dp[lson][j−1]+v[lson]dp[u][j]=dp[lson][j−1]+v[lson] 两边都不剪:dp[u][j]=dp[lson][j]+dp[rson][k−j−2]dp[u][j]=dp[lson][j]+dp[rson][k−j−2] 代码:记忆化搜索 int f[N][N]; bool t[N][N]; int dp(int u,int k) { if(t[u][k]) return f[u][k]; t[u][k]=1; if(!
随机数基本使用方法
January 15, 2019
基本公式: 要取得[a,b)的随机整数,使用(rand() % (b-a))+ a; 要取得[a,b]的随机整数,使用(rand() % (b-a+1))+ a; 要取得(a,b]的随机整数,使用(rand() % (b-a))+ a + 1; 通用公式:a + rand() % n;其中的a是起始值,n是整数的范围。 要取得a到b之间的随机整数,另一种表示:a + (int)b * rand() / (RAND_MAX + 1)。 要取得0~1之间的浮点数,可以使用rand() / double(RAND_MAX)。