「CSP-S模拟赛」2019第四场

  • T1 「JOI 2014 Final」JOI 徽章

    • 题目
    • 考场思考(正解)
  • T2 「JOI 2015 Final」分蛋糕 2
    • 题目
    • 考场思考(正解)
  • T3 「CQOI2014」数三角形
    • 题目
    • 考场思考
    • 正解

这场考试还是同一个感觉:听音乐误事啊…
把 T1、T2T1、T2T1、T2 码出来之后,听音乐听到不想做题,但是 T3T3T3 又是一个注重思考的题…然后,我暴力都没码出来。
其实这次题的 T3T3T3 还是可做的,下次 好像就是 CSP 了 不要那么浪了…


T1 「JOI 2014 Final」JOI 徽章

题目

点这里

考场思考(正解)

一道签到题。
考虑暴力枚举被修改的点,而这个点被修改之后,最多只会多产生 444 个徽章,暴力匹配就好。

#include<cstdio>#define rep(i,__l,__r) for(int i=__l,i##_end_=__r;i<=i##_end_;++i)
#define dep(i,__l,__r) for(int i=__l,i##_end_=__r;i>=i##_end_;--i)
// #define FILEOI#define cg (c=getchar())
template<class T>inline void qread(T& x){x=0;char c;bool f=0;while(cg<'0'||'9'<c)if(c=='-')f=1;for(x=(c^48);'0'<=cg&&c<='9';x=(x<<1)+(x<<3)+(c^48));if(f)x=-x;
}
template<class T,class... Args>inline void qread(T& x,Args&... args){qread(x),qread(args...);}
inline int qread(){int x=0;char c;bool f=1;while(cg<'0'||'9'<c)if(c=='-')f=0;for(x=(c^48);'0'<=cg&&c<='9';x=(x<<1)+(x<<3)+(c^48));return f?x:-x;
}
#undef cg
template<class T>inline T Max(const T x,const T y){return x>y?x:y;}
template<class T>inline T Min(const T x,const T y){return x<y?x:y;}
template<class T>inline T fab(const T x){return x>0?x:-x;}
inline void getInv(int inv[],const int r,const int MOD)
{inv[0]=inv[1]=1;for(int i=2;i<=r;++i)inv[i]=1ll*inv[MOD%i]*(MOD-MOD/i)%MOD;}
template<class T>void fwrit(const T x){if(x<0)return (void)(putchar('-'),fwrit(-x));if(x>9)fwrit(x/10);putchar(x%10^48);
}const int MAXN=1000;
const int MAXM=1000;
const char letter[]={'J','O','I'};int N,M,ians,tot[MAXN+5][MAXM+5],ans;
char sig[5][5],flg[MAXN+5][MAXM+5];inline void init(){qread(N,M);rep(i,1,N)scanf("%s",flg[i]+1);// fwrit(N),putchar(' '),fwrit(M),putchar('\n');scanf("%s",sig[1]+1);scanf("%s",sig[2]+1);/*rep(i,1,N){rep(j,1,M)putchar(flg[i][j]);putchar('\n');}rep(i,1,2){rep(j,1,2)putchar(sig[i][j]);putchar('\n');}*/
}inline void alter(const int i,const int j){++tot[i][j];++tot[i][j+1];++tot[i+1][j];++tot[i+1][j+1];
}inline int chk(const int i,const int j){int ret=0;ret+=(flg[i][j]!=sig[1][1]);ret+=(flg[i][j+1]!=sig[1][2]);ret+=(flg[i+1][j]!=sig[2][1]);ret+=(flg[i+1][j+1]!=sig[2][2]);// printf("chk(%d,%d)==%d\n",i,j,ret);return ret;
}inline bool inside(const int i,const int j){return 0<i&&i<=N&&0<j&&j<=M;
}inline void find_change(){int tmp;char memo;rep(i,1,N)rep(j,1,M){tmp=ians-tot[i][j],memo=flg[i][j];rep(k,0,2)if(letter[k]!=memo){tmp=ians-tot[i][j];flg[i][j]=letter[k];if(inside(i-1,j-1)&&chk(i-1,j-1)==0)++tmp;if(inside(i-1,j)&&inside(i,j+1)&&chk(i-1,j)==0)++tmp;if(inside(i,j-1)&&inside(i+1,j)&&chk(i,j-1)==0)++tmp;if(inside(i+1,j+1)&&chk(i,j)==0)++tmp;ans=Max(ans,tmp);}flg[i][j]=memo;}
}signed main(){#ifdef FILEOIfreopen("badge.in","r",stdin);freopen("badge.out","w",stdout);
#endifinit();rep(i,1,N-1)rep(j,1,M-1)if(chk(i,j)==0)++ians,alter(i,j);ans=ians;// fwrit(ans);find_change();fwrit(ans),putchar('\n');return 0;
}

T2 「JOI 2015 Final」分蛋糕 2

题目

点这里

考场思考(正解)

其实,我们这道题没有必要破环为链
那么我们怎么做呢?我们允许我们的搜索,或者是 DPDPDP 中存在 l>rl>rl>r 的区间。
而这样的存在,其实就是下面这样的。

而我们怎么执行 LLL 与 RRR 的移动呢?
看下面这段代码 其实就一行 :

inline int getPos(const int p){return (p+N-1)%N+1;}

这样,我们首先保证了这个位置是处在 [1,N][1,N][1,N] 之间,不会越界。
接下来,怎么做?
我成绩太差了,只能考虑暴力…
考虑定义一个大法师(dfs)函数

inline int dfs(const int l,const int r,const int cost,const bool Now,const int tot)

这个函数表示我们已经选了区间 [l,r][l,r][l,r] (不保证 l≤rl\le rl≤r)的全部的蛋糕,而此时我们得到的价值是 costcostcost,现在是 NowNowNow 的回合(Now=0Now=0Now=0 表示 IOIIOIIOI 的回合)时,还有 tottottot 个部分的蛋糕没有选的时候(其实 tottottot 这一维可以省掉,但是我懒得写了 嘿嘿嘿… )
那么,我们可以很简单地打出一个暴力,如下:

#include<cstdio>#define rep(i,__l,__r) for(int i=__l,i##_end_=__r;i<=i##_end_;++i)
#define dep(i,__l,__r) for(int i=__l,i##_end_=__r;i>=i##_end_;--i)
// #define FILEOI
#define int long long#define cg (c=getchar())
template<class T>inline void qread(T& x){x=0;char c;bool f=0;while(cg<'0'||'9'<c)if(c=='-')f=1;for(x=(c^48);'0'<=cg&&c<='9';x=(x<<1)+(x<<3)+(c^48));if(f)x=-x;
}
template<class T,class... Args>inline void qread(T& x,Args&... args){qread(x),qread(args...);}
inline int qread(){int x=0;char c;bool f=1;while(cg<'0'||'9'<c)if(c=='-')f=0;for(x=(c^48);'0'<=cg&&c<='9';x=(x<<1)+(x<<3)+(c^48));return f?x:-x;
}
#undef cg
template<class T>inline T Max(const T x,const T y){return x>y?x:y;}
template<class T>inline T Min(const T x,const T y){return x<y?x:y;}
template<class T>inline T fab(const T x){return x>0?x:-x;}
inline void getInv(int inv[],const int r,const int MOD)
{inv[0]=inv[1]=1;for(int i=2;i<=r;++i)inv[i]=1ll*inv[MOD%i]*(MOD-MOD/i)%MOD;}
template<class T>void fwrit(const T x){if(x<0)return (void)(putchar('-'),fwrit(-x));if(x>9)fwrit(x/10);putchar(x%10^48);
}const int MAXN=2000;
int N,ans,a[MAXN+5];
int f[MAXN+5][MAXN+5][2];
inline int getPos(const int p){return (p+N-1)%N+1;
}inline void init(){qread(N);rep(i,1,N)qread(a[i]);
}inline int dfs(const int l,const int r,const int cost,const bool Now,const int tot){if(tot==0)return cost;int ans1=0,ans2=0;if(Now==0){if(a[getPos(l-1)]<a[getPos(r+1)])ans1=dfs(l,getPos(r+1),cost,1,tot-1);else ans1=dfs(getPos(l-1),r,cost,1,tot-1);}else{ans1=dfs(getPos(l-1),r,cost+a[getPos(l-1)],0,tot-1);ans2=dfs(l,getPos(r+1),cost+a[getPos(r+1)],0,tot-1);}return Max(ans1,ans2);
}signed main(){#ifdef FILEOIfreopen("divide.in","r",stdin);freopen("divide.out","w",stdout);
#endifinit();for(int i=1;i<=N;++i){int ret=dfs(i,i,a[i],0,N-1);ans=Max(ans,ret);}fwrit(ans),putchar('\n');return 0;
}
/*
f[i][j]:可选的蛋糕从 i -> j2 8 1 10 9j\i  1  2  3  4  51        82           13     12 12    104  9  2  115     2*/

但是,如果就仅仅是这个代码,很遗憾,你只能得 15pts15pts15pts。
怎么朝更高的得分奋斗?
很容易想到——记忆化
但是如果你用一个三维状态 f[i][j][0∣1]f[i][j][0|1]f[i][j][0∣1] 来记忆代码中的 l,r,Nowl,r,Nowl,r,Now 的话,发现正确性不能保证?
至于为什么可以自己去推一下。
考虑倒着进行记忆化。
定义状态 f[l][r][0∣1]f[l][r][0|1]f[l][r][0∣1]:先手为 0∣10|10∣1 时选区间 [l,r][l,r][l,r] 能取到的最大值。
那么我们可以在每次 dfsdfsdfs 之后得到这个记忆化

f[getPos(l-1)][getPos(r+1)][Now]=Max(ans1,ans2)-cost;

什么意思?
假设我们已经搜到区间 [l,r][l,r][l,r],根据大法师的定义,我们已经取完了区间 [l,r][l,r][l,r] 中的蛋糕。
那么显然,没有取的蛋糕的区间就是 [getPos(l−1),getPos(r+1)][getPos(l-1),getPos(r+1)][getPos(l−1),getPos(r+1)]。
而 Max(ans1,ans2)Max(ans1,ans2)Max(ans1,ans2) 为最终我们选完所有蛋糕(即区间 [1,N][1,N][1,N])后的最大取值,再减去我们当前搜索的区间(即区间 [l,r][l,r][l,r]),然后就可以得到选区间 [getPos(l−1),getPos(r+1)][getPos(l-1),getPos(r+1)][getPos(l−1),getPos(r+1)] 中蛋糕能得到的最大值。
附代码 因为是记忆化搜索,所以跑得还是有点慢

#include<cstdio>#define rep(i,__l,__r) for(register int i=__l,i##_end_=__r;i<=i##_end_;++i)
#define dep(i,__l,__r) for(register int i=__l,i##_end_=__r;i>=i##_end_;--i)
// #define FILEOI
#define int long long#define cg (c=getchar())
template<class T>inline void qread(T& x){x=0;char c;bool f=0;while(cg<'0'||'9'<c)if(c=='-')f=1;for(x=(c^48);'0'<=cg&&c<='9';x=(x<<1)+(x<<3)+(c^48));if(f)x=-x;
}
template<class T,class... Args>inline void qread(T& x,Args&... args){qread(x),qread(args...);}
inline int qread(){int x=0;char c;bool f=1;while(cg<'0'||'9'<c)if(c=='-')f=0;for(x=(c^48);'0'<=cg&&c<='9';x=(x<<1)+(x<<3)+(c^48));return f?x:-x;
}
#undef cg
template<class T>inline T Max(const T x,const T y){return x>y?x:y;}
template<class T>inline T Min(const T x,const T y){return x<y?x:y;}
template<class T>inline T fab(const T x){return x>0?x:-x;}
inline void getInv(int inv[],const int r,const int MOD)
{inv[0]=inv[1]=1;for(int i=2;i<=r;++i)inv[i]=1ll*inv[MOD%i]*(MOD-MOD/i)%MOD;}
template<class T>void fwrit(const T x){if(x<0)return (void)(putchar('-'),fwrit(-x));if(x>9)fwrit(x/10);putchar(x%10^48);
}const int MAXN=2000;
int N,ans,a[MAXN+5],f[MAXN+5][MAXN+5][2];
//f[i][j][0|1] : 区间 [i,j] 是还没有被选过时, 现在是 IOI/JOI 的情况时能选到的最大值inline int getPos(const int p){return (p+N-1)%N+1;}inline void init(){qread(N);rep(i,1,N)qread(a[i]);
}inline int dfs(const int l,const int r,const int cost,const bool Now,const int tot){if(f[getPos(l-1)][getPos(r+1)][Now])return f[getPos(l-1)][getPos(r+1)][Now]+cost;if(tot==0)return cost;int ans1=0,ans2=0;if(Now==0){if(a[getPos(l-1)]<a[getPos(r+1)])ans1=dfs(l,getPos(r+1),cost,1,tot-1);else ans1=dfs(getPos(l-1),r,cost,1,tot-1);}else{ans1=dfs(getPos(l-1),r,cost+a[getPos(l-1)],0,tot-1);ans2=dfs(l,getPos(r+1),cost+a[getPos(r+1)],0,tot-1);}f[getPos(l-1)][getPos(r+1)][Now]=Max(ans1,ans2)-cost;return Max(ans1,ans2);
}signed main(){#ifdef FILEOIfreopen("divide.in","r",stdin);freopen("divide.out","w",stdout);
#endifinit();for(int i=1;i<=N;++i){int ret=dfs(i,i,a[i],0,N-1);ans=Max(ans,ret);}fwrit(ans),putchar('\n');return 0;
}

T3 「CQOI2014」数三角形

题目

点这里

考场思考

听歌听到兴头上,不要打扰我…
虽然写道这里我也在听歌…

正解

其实这道题还是可做的。

膜拜 luoguluoguluogu 大佬 orz or2 orz
膜拜 机房大佬 JZM\text{JZM}JZM orz or2 orz

其实我与 机房大佬 JZM\text{JZM}JZM 的思路如出一辙
因为我们都看了同一篇博客
回到正题,这道题怎么做?
子方法 1
先想怎么得到一点部分分。
考虑暴力
暴力枚举 p1,p2,p3p_1,p_2,p_3p1​,p2​,p3​ 的横纵坐标。
其实很好实现,时间复杂度 O(N3M3)O(N^3M^3)O(N3M3)
我考试的时候居然连这个都没打
子方法 2 (正解)
现在应该朝更高的得分去奋斗。
转换思考方向,我们要找的这些三角形有怎样的特点呢?
先看一个网格中的三角形:

似乎它和我们平常看到的三角形没啥不同的。
但是如果你这样看呢?

不难看出,△BCE\triangle BCE△BCE 被矩形 ABCDABCDABCD 完全包围。
但是这里要否决一种情况,如下:

这个三角形不能说是被整个矩形完全包围的,还有更小的矩阵更 适合 它。
用这样的眼光去看每一个三角形,不难看出,每一个三角形都被某一个矩形所围起来。
调转思路,我们要求大矩阵 (N,M)(N,M)(N,M) 中有多少个这样的三角形,是否就是被包含在 (N,M)(N,M)(N,M) 中的每一个小矩阵中所含的三角形个数之和?
正确性显然,证明此处不给出。
那么,引出下一个问题:如何快速求出一个矩阵 (i,j)(i,j)(i,j) 中含有多少个被其完全包围的三角形?
这里分开讨论:


情况 1
形如以下被包围的三角形:

其实也可以叫做:

有且只有一个顶点与矩形顶点重合

就用上图情况来说,F、DF、DF、D 的位置有多少个?
显然:(i−1)(j−1)(i-1)(j-1)(i−1)(j−1) 个 (不与顶点重合)
有四个顶点,共 4(i−1)(j−1)4(i-1)(j-1)4(i−1)(j−1) 个。


情况 2
这里不再附图,直接描述

有且只有两个点与矩形顶点重合,并且这两个点不是矩形对角线

这样的情况有多少?先给出一张初始图:

先假设有一个点已与矩形顶点重合,不妨假设 DDD 已与 CCC 重合。
再假设 HHH 与 EEE 重合
那么显然,GGG 只能在线段 ABABAB 上动,共有 i−1i-1i−1 个合法位置 (不能与顶点重合)
那么,如果 GGG 与 BBB 重合时呢?
这时 HHH 只能在 AEAEAE 上动,公共 j−1j-1j−1 个合法位置。
而每种情况最多出现两次,共 2[(i−1)+(j−1)]2[(i-1)+(j-1)]2[(i−1)+(j−1)] 种情况。


情况 3
形如以下的三角形:

我们把它叫做

有且只有两个点与矩形顶点重合,且这两个点构成矩形对角线

这样的情况其实有些复杂,因为这个 PPP 点显然可以随便取 除非它跑出矩形去或者在 DF 这条线上
首先,不考虑它跑到 DFDFDF 线段上去了。
那么这样的点有多少个?
显然有 (i+1)(j+1)−4(i+1)(j+1)-4(i+1)(j+1)−4 个,为什么 −4-4−4 ?它不能与矩形顶点重合。
那么,现在考虑在 DFDFDF 上有多少个点。
首先,我们假设当 P(x,y)P(x,y)P(x,y) 时在 DFDFDF 上,那么就有:
Dy−FyDx−Fx=y−Fyx−Fx\frac{D_y-F_y}{D_x-F_x}=\frac{y-F_y}{x-F_x}Dx​−Fx​Dy​−Fy​​=x−Fx​y−Fy​​接下来怎么化简?
对于任意一条线段,假若我们把它平移到某个端点与原点重合时,它所经过的整点的数量是不变的。
那么我们假设把 FFF 平移到 OOO 上面去,那么就有:
DyDx=yx\frac{D_y}{D_x}=\frac{y}{x}Dx​Dy​​=xy​而其中 x,yx,yx,y 是整数。
接下来,这 x,yx,yx,y 有哪些取值?
这样打开:
p×gcd(Dx,Dy)q×gcd(Dx,Dy)=yx\frac{p\times gcd(D_x,D_y)}{q\times gcd(D_x,D_y)}=\frac{y}{x}q×gcd(Dx​,Dy​)p×gcd(Dx​,Dy​)​=xy​
那么,显然可以看出:

  • 当 x=qx=qx=q 时,y=py=py=p

  • 当 x=q×2x=q\times 2x=q×2 时,y=p×2y=p\times 2y=p×2

  • 当 x=q×3x=q\times 3x=q×3 时,y=p×3y=p\times 3y=p×3

  • 当 x=q×gcd(Dx,Dy)=Dxx=q\times gcd(D_x,D_y)=D_xx=q×gcd(Dx​,Dy​)=Dx​ 时,y=p×gcd(Dx,Dy)=Dyy=p\times gcd(D_x,D_y)=D_yy=p×gcd(Dx​,Dy​)=Dy​

要问 x,yx,yx,y 有多少组取值?显然 gcd(Dx,Dy)gcd(D_x,D_y)gcd(Dx​,Dy​) 种。
但是,去掉端点,就只有 gcd(Dx,Dy)−1gcd(D_x,D_y)-1gcd(Dx​,Dy​)−1 种。
但是每个矩形一共有两条对角线 不可能有只有一条对角线的长方形吧
所以一共有 2×(gcd(lenx,leny)−1)2\times (gcd(len_x,len_y)-1)2×(gcd(lenx​,leny​)−1) 种三角形。
注意我这里所用的是长度,因为我们之前为了处理方便,将 FFF 点假定为了原点。


情况 4
当三个点都与矩形重合时,有多少种情况呢?
对于每一个矩形来说,应该都是固定的吧。
一共有 444 个。


一共的情况,就只有这四种,那么,我们将这些贡献全部加起来,得到w=4(i−1)(j−1)+2[(i−1)+(j−1)]+2[gcd(i,j)−1]+4=6ij−2×gcd(i,j)w=4(i-1)(j-1)+2[(i-1)+(j-1)]+2[gcd(i,j)-1]+4=6ij-2\times gcd(i,j)w=4(i−1)(j−1)+2[(i−1)+(j−1)]+2[gcd(i,j)−1]+4=6ij−2×gcd(i,j)最后用 O(NM)O(NM)O(NM) 枚举 i、ji、ji、j,再将这些贡献加起来即可。
注:这只是单个矩形的贡献,一共有 (N−lenx+1)(M−leny+1)(N-len_x+1)(M-len_y+1)(N−lenx​+1)(M−leny​+1) 个长度为 lenxlen_xlenx​,宽度为 lenylen_yleny​ 的矩形。

#include<cstdio>#define rep(i,__l,__r) for(register int i=__l,i##_end_=__r;i<=i##_end_;++i)
#define dep(i,__l,__r) for(register int i=__l,i##_end_=__r;i>=i##_end_;--i)
// #define FILEOI
#define int long long#define cg (c=getchar())
template<class T>inline void qread(T& x){x=0;char c;bool f=0;while(cg<'0'||'9'<c)if(c=='-')f=1;for(x=(c^48);'0'<=cg&&c<='9';x=(x<<1)+(x<<3)+(c^48));if(f)x=-x;
}
template<class T,class... Args>inline void qread(T& x,Args&... args){qread(x),qread(args...);}
inline int qread(){int x=0;char c;bool f=1;while(cg<'0'||'9'<c)if(c=='-')f=0;for(x=(c^48);'0'<=cg&&c<='9';x=(x<<1)+(x<<3)+(c^48));return f?x:-x;
}
#undef cg
template<class T>inline T Max(const T x,const T y){return x>y?x:y;}
template<class T>inline T Min(const T x,const T y){return x<y?x:y;}
template<class T>inline T fab(const T x){return x>0?x:-x;}
inline void getInv(int inv[],const int r,const int MOD)
{inv[0]=inv[1]=1;for(int i=2;i<=r;++i)inv[i]=1ll*inv[MOD%i]*(MOD-MOD/i)%MOD;}
inline int gcd(const int a,const int b){return b?gcd(b,a%b):a;}
template<class T>void fwrit(const T x){if(x<0)return (void)(putchar('-'),fwrit(-x));if(x>9)fwrit(x/10);putchar(x%10^48);
}int m,n,ans;inline void init(){qread(m,n);}inline int calc(const int i,const int j){return 6*i*j-2*gcd(i,j);}signed main(){#ifdef FILEOIfreopen("triangle.in","r",stdin);freopen("triangle.out","w",stdout);
#endifinit();rep(i,1,m)rep(j,1,n)ans+=(m-i+1)*(n-j+1)*calc(i,j);fwrit(ans),putchar('\n');return 0;
}

「CSP-S模拟赛」2019第四场相关推荐

  1. 「小奇模拟赛2」小奇的危机(from hzwer.com)

    「小奇模拟赛2」小奇的危机(from hzwer.com) 「题目背景」 小奇驾驶飞船来到了一个奇怪的星球,这个星球的所以城市都在地下,而且由于环境不断恶化,星球上发生了可怕的生化危机. 「问题描述」 ...

  2. 「多校联考」第三周二场

    「多校联考」第三周二场 T1 分数转换 题目 考场思考(正解) T2 Slow Path Finding Algorithm (SPFA) 考场思路 正解 T3 切面包 考场思路 正解 这套题是真的很 ...

  3. ssl模拟赛(2019.4.27)

    成绩 rank是有算其他大爷的 rank name score T1 T2 T3 T4 1 L Y F LYF LYF 320 100 100 100 20 2 H K Y HKY HKY 296 1 ...

  4. 「构生态·建未来 」2019软件绿色联盟开发者大会售票开启

    如何在一天之内Get国内最顶尖互联网公司的技术干货?如何加入国内头部应用开发者的技术盛宴? 开发者们,2019年11月19日,让我们再次重逢软件绿色联盟开发者大会! 5G.云.IOT.AI等新技术的融 ...

  5. 基于React全家桶开发「网易云音乐PC」项目实战(四)

    前言 前言 hello大家好我是「风不识途」,如果首次阅读本系列请点击,正在学习React的小伙伴可以克隆该项目,参考学习,尝试做一些小功能,下面我们开始完成本系列最重要的音乐播放器列表▶需要完成内容 ...

  6. boss直聘一句话介绍优势_「公关界的007」95后职场前夜,BOSS直聘想跟够“敢”的你聊聊...

    史上最难求职季又双叒叕来了,校招接近尾声,传说中的offer收割机似乎都消失了,取而代之的是某瓣985FIVE小组每天上百的加组申请--"毕业即失业"的魔咒在今年被成千上百倍地放大 ...

  7. 「Vijos 1285」「OIBH杯NOIP2006第二次模拟赛」佳佳的魔法药水

    佳佳的魔法药水 背景 发完了k张照片,佳佳却得到了一个坏消息:他的MM得病了!佳佳和大家一样焦急万分!治好MM的病只有一种办法,那就是传说中的0号药水--怎么样才能得到0号药水呢?你要知道佳佳的家境也 ...

  8. 「NOIP2018模拟赛」 摘果子 - 树形Dp

    题目描述 分析 有依赖的树上背包.可以用Dfs序进行Dp,但更直接的方法是先将其转化为二叉树,在对左右儿子分配,进行Dp.Dfs(x,t)函数表示在以x为根的子树上,还能接受t的毒,所获得的最大美味度 ...

  9. 「猜题第一篇」2019年大学生电子设计竞赛

    点击上方"大鱼机器人",选择"置顶/星标公众号" 福利干货,第一时间送达! 昨天出了清单之后,第一时间我是懵逼的~脑子里想的是:这都是啥啊~~后面仔细的理了一下 ...

最新文章

  1. 编译-C++支持iOS静态库的脚本学习
  2. 自定义动画 animate || 案例:王者荣耀手风琴效果分析
  3. python爬取音乐并保存_python3 实现爬取TOP500的音乐信息并存储到mongoDB数据库中
  4. php utf8格式显示中文,php截取中文字符(utf-8格式)的函数
  5. 剑指offer--打印1到最大的n位数
  6. 图像迁移风格保存模型_图像风格迁移也有框架了:使用Python编写,与PyTorch完美兼容,外行也能用...
  7. 服务器响应options,HTTP发送对OPTIONS请求的响应[C]
  8. alsa的动态库安装在哪里_Linux链接库一(动态库,静态库,库放在什么路径下)...
  9. 第27课 老狼老狼几点钟 《小学生C++趣味编程》
  10. 随想录(一个android原生app的代码赏析)
  11. Bsdiff:Bsd断电差分升级
  12. python杨辉三角函数_Python算法之六:杨辉三角
  13. 基于PWM调宽的呼吸灯算法
  14. IBM本本日常维护--光驱篇
  15. JAVA学习 第5天
  16. Python 和Java 哪个更适合做自动化测试?
  17. 测试 linux CPU 压力
  18. 桌面计算机怎么设置声音,右下角小喇叭不见了-电脑桌面右下角有一个调整声音的小喇叭图标没 – 手机爱问...
  19. PhysioBank简介
  20. html 外联 变 内联,Html 内联元素、外联元素 和 可变元素

热门文章

  1. 私有RTP协议和标准流媒体协议
  2. 8051单片机基础2:内核和存储器(RAM,Flash)架构
  3. 关于RuoYi自动代码生成功能的使用
  4. java投标_基于jsp的招投标系统-JavaEE实现招投标系统 - java项目源码
  5. STM32F4 使用SPI读取气压计MS5611的数据并转化为大气压强
  6. 求个最大值(技巧+二分转化)
  7. 【读书2】【2014】基于MATLAB的雷达信号处理基础(第二版)——多普勒频移(1)
  8. 佛盛龙桌(台)球厅管理软件系统
  9. 动手制作QQ找茬游戏外挂
  10. 你所不知道的VisualGDB