LINK:CF R 654 div2

前言:F题是一个线段树分类讨论的题目 比赛的时候没看 赛后感觉没什么意思 所以咕掉了。

记事:第一次笼统的写一场比赛的题目 可能是我这场比赛打的太差了 题目不难 赛后轻而易举的解决 赛时可能是状态的问题吧.

A.Magical Sticks

容易发现不论奇偶构成的数字最优解一定为n 然后偶数答案显然为n/2 奇数可以多构成一对 n/2+1.

code
//#include<bits\stdc++.h>
#include<iostream>
#include<iomanip>
#include<cstdio>
#include<cstring>
#include<string>
#include<ctime>
#include<cmath>
#include<cctype>
#include<cstdlib>
#include<queue>
#include<deque>
#include<stack>
#include<vector>
#include<algorithm>
#include<utility>
#include<bitset>
#include<set>
#include<map>
#define ll long long
#define db double
#define INF 1000000000
#define ldb long double
#define pb push_back
#define put_(x) printf("%d ",x);
#define get(x) x=read()
#define gt(x) scanf("%d",&x)
#define gi(x) scanf("%lf",&x)
#define put(x) printf("%d\n",x)
#define putl(x) printf("%lld\n",x)
#define gc(a) scanf("%s",a+1)
#define rep(p,n,i) for(RE int i=p;i<=n;++i)
#define go(x) for(int i=lin[x],tn=ver[i];i;tn=ver[i=nex[i]])
#define fep(n,p,i) for(RE int i=n;i>=p;--i)
#define vep(p,n,i) for(RE int i=p;i<n;++i)
#define pii pair<int,int>
#define mk make_pair
#define RE register
#define P 1000000007
#define gf(x) scanf("%lf",&x)
#define pf(x) ((x)*(x))
#define uint unsigned long long
#define ui unsigned
#define EPS 1e-9
#define sq sqrt
#define mod 998244353
#define S second
#define F first
#define op(x) t[x].op
#define d(x) t[x].d
#define Set(a,v) memset(a,v,sizeof(a))
#define pf(x) ((x)*(x))
using namespace std;
char buf[1<<15],*fs,*ft;
inline char getc()
{
return (fs==ft&&(ft=(fs=buf)+fread(buf,1,1<<15,stdin),fs==ft))?0:*fs++;
}
inline int read()
{
RE int x=0,f=1;RE char ch=getc();
while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getc();}
while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getc();}
return x*f;
}
const int MAXN=2010;
int n,T;
int main()
{
//freopen("1.in","r",stdin);
get(T);
while(T--)
{
get(n);
put(n/2+(n&1));
}
return 0;
}

B.Magical Calendar

怀疑题意迷惑选手。。根据题意m的范围可以对n取min.

考虑格子宽度为1是方案为1 2的时候方案为2......不过注意宽度为n的时候方案为1 特判一下就做完了。

code
//#include<bits\stdc++.h>
#include<iostream>
#include<iomanip>
#include<cstdio>
#include<cstring>
#include<string>
#include<ctime>
#include<cmath>
#include<cctype>
#include<cstdlib>
#include<queue>
#include<deque>
#include<stack>
#include<vector>
#include<algorithm>
#include<utility>
#include<bitset>
#include<set>
#include<map>
#define ll long long
#define db double
#define INF 1000000000
#define ldb long double
#define pb push_back
#define put_(x) printf("%d ",x);
#define get(x) x=read()
#define gt(x) scanf("%d",&x)
#define gi(x) scanf("%lf",&x)
#define put(x) printf("%d\n",x)
#define putl(x) printf("%lld\n",x)
#define gc(a) scanf("%s",a+1)
#define rep(p,n,i) for(RE int i=p;i<=n;++i)
#define go(x) for(int i=lin[x],tn=ver[i];i;tn=ver[i=nex[i]])
#define fep(n,p,i) for(RE int i=n;i>=p;--i)
#define vep(p,n,i) for(RE int i=p;i<n;++i)
#define pii pair<int,int>
#define mk make_pair
#define RE register
#define P 1000000007
#define gf(x) scanf("%lf",&x)
#define pf(x) ((x)*(x))
#define uint unsigned long long
#define ui unsigned
#define EPS 1e-9
#define sq sqrt
#define mod 998244353
#define S second
#define F first
#define op(x) t[x].op
#define d(x) t[x].d
#define Set(a,v) memset(a,v,sizeof(a))
#define pf(x) ((x)*(x))
using namespace std;
char buf[1<<15],*fs,*ft;
inline char getc()
{
return (fs==ft&&(ft=(fs=buf)+fread(buf,1,1<<15,stdin),fs==ft))?0:*fs++;
}
inline int read()
{
RE int x=0,f=1;RE char ch=getc();
while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getc();}
while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getc();}
return x*f;
}
const int MAXN=2010;
int n,T,m;
int main()
{
//freopen("1.in","r",stdin);
get(T);
while(T--)
{
int ww=get(n);get(m);
m=min(m,n);
if(m==ww)putl((ll)m*(m+1)/2-n+1);
else putl((ll)m*(m+1)/2);
}
return 0;
}
</details> **C.A Cookie for You**
比赛的时候人傻了 觉得不太会写 写了几个特判没过去 赛后写了两个特判就过了。 首先特判a+b<n+m的情况 下面讨论a+b>=n+m的情况。然后要多熟悉几遍题目中的两种顾客的吃法。 然后可以将两种顾客分别归纳为:1 谁多吃谁。2 谁少吃谁。 仔细观察发现第一种顾客对于任何一种局面来看都是可以做完的。 那么只需要让第二个顾客做完就行了,谁少吃谁 那么考虑这个少的能否支持下去 如果不行肯定是要想到能否吃到多的那个 而想要吃到多的那个只能让多的变成和这个少的至少相等或者更少然后才能吃 可以发现对方的那个此时也不为解 如此循环结果会更差 所以只需要特判min(a,b)和m的大小关系. <details>
<summary>code</summary>

//#include<bits\stdc++.h>

include

include

include

include

include

include

include

include

include

include

include

include

include

include

include

include

include

include

define ll long long

define db double

define INF 1000000000

define ldb long double

define pb push_back

define put_(x) printf("%d ",x);

define get(x) x=read()

define gt(x) scanf("%d",&x)

define gi(x) scanf("%lf",&x)

define put(x) printf("%d\n",x)

define putl(x) printf("%lld\n",x)

define gc(a) scanf("%s",a+1)

define rep(p,n,i) for(RE ll i=p;i<=n;++i)

define go(x) for(ll i=lin[x],tn=ver[i];i;tn=ver[i=nex[i]])

define fep(n,p,i) for(RE ll i=n;i>=p;--i)

define vep(p,n,i) for(RE ll i=p;i<n;++i)

define pii pair<ll,ll>

define mk make_pair

define RE register

define P 1000000007

define gf(x) scanf("%lf",&x)

define pf(x) ((x)*(x))

define uint unsigned long long

define ui unsigned

define EPS 1e-9

define sq sqrt

define mod 998244353

define S second

define F first

define op(x) t[x].op

define d(x) t[x].d

define Set(a,v) memset(a,v,sizeof(a))

define pf(x) ((x)*(x))

using namespace std;

char buf[1<<15],fs,ft;

inline char getc()

{

return (fsft&&(ft=(fs=buf)+fread(buf,1,1<<15,stdin),fsft))?0:fs++;

}

inline ll read()

{

RE ll x=0,f=1;RE char ch=getc();

while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getc();}

while(ch>='0'&&ch<='9'){x=x
10+ch-'0';ch=getc();}

return x*f;

}

const ll MAXN=310;

ll a,b,n,m,T;

signed main()

{

//freopen("1.in","r",stdin);

get(T);

while(T--)

{

get(a);get(b);

get(n);get(m);

if(a+b<n+m){puts("No");continue;}

if(min(a,b)>=m){puts("Yes");continue;}

puts("No");

}

return 0;

}

D.Grid-00100

考试的时候人傻了 没想到绝妙的n^2的直接构造方法 然后放弃治疗。赛后一发n^2log过了。。然后被自己蠢到了。

n^2确实不好想这道题不卡多带一个log的做法 且官方的做法虽然是n^2的也没给证明 那么证明管我毛事

值得一提的是 这个n^2log的做法可以拓展优化到n^2.

容易想到答案要么为0要么为2.为0的时候k|n。然后可以强制给每一行和每一列安排上1的个数。

然后考虑构造 通过观察发现无论什么情况都能够构造出来。

那么考虑逐行构造 盲目填1会出错 然后考虑每次填那些1的时候填列尽量少的列 证明的话可以意会一下.

code
//#include<bits\stdc++.h>
#include<iostream>
#include<iomanip>
#include<cstdio>
#include<cstring>
#include<string>
#include<ctime>
#include<cmath>
#include<cctype>
#include<cstdlib>
#include<queue>
#include<deque>
#include<stack>
#include<vector>
#include<algorithm>
#include<utility>
#include<bitset>
#include<set>
#include<map>
#define ll long long
#define db double
#define INF 1000000000
#define ldb long double
#define pb push_back
#define put_(x) printf("%d ",x);
#define get(x) x=read()
#define gt(x) scanf("%d",&x)
#define gi(x) scanf("%lf",&x)
#define put(x) printf("%d\n",x)
#define putl(x) printf("%lld\n",x)
#define gc(a) scanf("%s",a+1)
#define rep(p,n,i) for(RE int i=p;i<=n;++i)
#define go(x) for(int i=lin[x],tn=ver[i];i;tn=ver[i=nex[i]])
#define fep(n,p,i) for(RE int i=n;i>=p;--i)
#define vep(p,n,i) for(RE int i=p;i<n;++i)
#define pii pair<int,int>
#define mk make_pair
#define RE register
#define P 1000000007
#define gf(x) scanf("%lf",&x)
#define pf(x) ((x)*(x))
#define uint unsigned long long
#define ui unsigned
#define EPS 1e-9
#define sq sqrt
#define mod 998244353
#define S second
#define F first
#define op(x) t[x].op
#define d(x) t[x].d
#define Set(a,v) memset(a,v,sizeof(a))
#define pf(x) ((x)*(x))
using namespace std;
char buf[1<<15],*fs,*ft;
inline char getc()
{
return (fs==ft&&(ft=(fs=buf)+fread(buf,1,1<<15,stdin),fs==ft))?0:*fs++;
}
inline int read()
{
RE int x=0,f=1;RE char ch=getc();
while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getc();}
while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getc();}
return x*f;
}
const int MAXN=310;
int n,T,m,k;
int res[MAXN];
pii s[MAXN];
int a[MAXN][MAXN];
inline int cmp(pii a,pii b){return a.F>b.F;}
int main()
{
//freopen("1.in","r",stdin);
get(T);
while(T--)
{
get(n);get(k);
memset(res,0,sizeof(res));
if(k%n){puts("2");}
else puts("0");
rep(1,n,i)
{
int ww=k/n+(i<=k%n),top=0;
rep(1,n,j)
{
int cc=k/n+(j<=k%n);
a[i][j]=0;
s[++top]=mk(cc-res[j],j);
}
sort(s+1,s+1+top,cmp);
rep(1,n,j)if(ww)a[i][s[j].S]=1,--ww,++res[s[j].S];else break;
rep(1,n,j)cout<<a[i][j];
cout<<endl;
}
}
return 0;
}

容易发现每次填的时候对于列来说01的段都是连续的 可以强行使用双端队列优化 进一步的记录上一次的位置直接推就行了 复杂度n^2.

code
//#include<bits\stdc++.h>
#include<iostream>
#include<iomanip>
#include<cstdio>
#include<cstring>
#include<string>
#include<ctime>
#include<cmath>
#include<cctype>
#include<cstdlib>
#include<queue>
#include<deque>
#include<stack>
#include<vector>
#include<algorithm>
#include<utility>
#include<bitset>
#include<set>
#include<map>
#define ll long long
#define db double
#define INF 1000000000
#define ldb long double
#define pb push_back
#define put_(x) printf("%d ",x);
#define get(x) x=read()
#define gt(x) scanf("%d",&x)
#define gi(x) scanf("%lf",&x)
#define put(x) printf("%d\n",x)
#define putl(x) printf("%lld\n",x)
#define gc(a) scanf("%s",a+1)
#define rep(p,n,i) for(RE int i=p;i<=n;++i)
#define go(x) for(int i=lin[x],tn=ver[i];i;tn=ver[i=nex[i]])
#define fep(n,p,i) for(RE int i=n;i>=p;--i)
#define vep(p,n,i) for(RE int i=p;i<n;++i)
#define pii pair<int,int>
#define mk make_pair
#define RE register
#define P 1000000007
#define gf(x) scanf("%lf",&x)
#define pf(x) ((x)*(x))
#define uint unsigned long long
#define ui unsigned
#define EPS 1e-9
#define sq sqrt
#define mod 998244353
#define S second
#define F first
#define op(x) t[x].op
#define d(x) t[x].d
#define Set(a,v) memset(a,v,sizeof(a))
#define pf(x) ((x)*(x))
using namespace std;
char buf[1<<15],*fs,*ft;
inline char getc()
{
return (fs==ft&&(ft=(fs=buf)+fread(buf,1,1<<15,stdin),fs==ft))?0:*fs++;
}
inline int read()
{
RE int x=0,f=1;RE char ch=getc();
while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getc();}
while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getc();}
return x*f;
}
const int MAXN=310;
int n,T,m,k;
int res[MAXN],nex[MAXN];
int a[MAXN][MAXN];
inline int cmp(pii a,pii b){return a.F>b.F;}
int main()
{
//freopen("1.in","r",stdin);
get(T);
while(T--)
{
get(n);get(k);
memset(res,0,sizeof(res));
if(k%n){puts("2");}
else puts("0");
int last=1;
rep(1,n,i)nex[i]=i+1;nex[n]=1;
rep(1,n,i)
{
int ww=k/n+(i<=k%n);
rep(1,n,j)a[i][j]=0;
while(ww)
{
a[i][last]=1;
--ww;last=nex[last];
}
rep(1,n,j)cout<<a[i][j];
cout<<endl;
}
}
return 0;
}

证明比较容易这里不再赘述.

E1.Asterism (Easy Version)

这题怎么说呢 比较简单 考场的时候写懵逼了 写的都不知道是啥然后过了 非常的迷 导致E2更迷惑。。

考虑知道一个x如何求F(x). 先考虑x是否会存在方案数:安排最优的话那么必然是从小到大挑战。

将a数组排序 x要满足 \(x>=max{a_i-i+1}\)

方案数:这个是关键 可以考虑容斥 总方案-一个位置不合法+两个位置不合法-...然后可以发现这个方法不太行。

那么只能考虑直接求出合法的方案了 对于每个位置限制数字已经固定 即\(b_i=x+i-1\)

那么第一个点放数字的个数可以求出 第二个数字放数字的集合包含第一个集合 设\(w_i\)表示第i个位置能放的数字个数

\(F(x)=\Pi (w_i-i+1)\)可以发现这个方案不重不漏了。

这样就得了 \(n\cdot Max\) 不过过不了 题目中有\(a_i<=2000\)当x取到2000的时候显然此时%p一定为0 所以复杂度\(n^2\)

code
//#include<bits\stdc++.h>
#include<iostream>
#include<iomanip>
#include<cstdio>
#include<cstring>
#include<string>
#include<ctime>
#include<cmath>
#include<cctype>
#include<cstdlib>
#include<queue>
#include<deque>
#include<stack>
#include<vector>
#include<algorithm>
#include<utility>
#include<bitset>
#include<set>
#include<map>
#define ll long long
#define db double
#define INF 1000000000
#define ldb long double
#define pb push_back
#define put_(x) printf("%d ",x);
#define get(x) x=read()
#define gt(x) scanf("%d",&x)
#define gi(x) scanf("%lf",&x)
#define put(x) printf("%d\n",x)
#define putl(x) printf("%lld\n",x)
#define gc(a) scanf("%s",a+1)
#define rep(p,n,i) for(RE int i=p;i<=n;++i)
#define go(x) for(int i=lin[x],tn=ver[i];i;tn=ver[i=nex[i]])
#define fep(n,p,i) for(RE int i=n;i>=p;--i)
#define vep(p,n,i) for(RE int i=p;i<n;++i)
#define pii pair<int,int>
#define mk make_pair
#define RE register
#define P 1000000007
#define gf(x) scanf("%lf",&x)
#define pf(x) ((x)*(x))
#define uint unsigned long long
#define ui unsigned
#define EPS 1e-8
#define sq sqrt
#define S second
#define F first
#define op(x) t[x].op
#define d(x) t[x].d
#define Set(a,v) memset(a,v,sizeof(a))
using namespace std;
char buf[1<<15],*fs,*ft;
inline char getc()
{
return (fs==ft&&(ft=(fs=buf)+fread(buf,1,1<<15,stdin),fs==ft))?0:*fs++;
}
inline int read()
{
RE int x=0,f=1;RE char ch=getc();
while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getc();}
while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getc();}
return x*f;
}
const int MAXN=5010,maxn=155;
int n,mod,cnt;
int a[MAXN],ans[MAXN];
inline int F(int x)
{
int flag=0;ll ans=1;
rep(1,n,i)
{
while(a[flag+1]<=x+i-1&&flag+1<=n)++flag;
ans=ans*(flag-i+1)%mod;
}
return ans;
}
int main()
{
//freopen("1.in","r",stdin);
//freopen("2.out","w",stdout);
get(n);get(mod);
rep(1,n,i)get(a[i]);
sort(a+1,a+1+n);
int minn=0;
rep(1,n,i)minn=max(minn,a[i]-i+1);
rep(minn,2000,i)if(F(i))ans[++cnt]=i;
put(cnt);
rep(1,cnt,i)printf("%d ",ans[i]);
return 0;
}

E2.Asterism (Hard Version)

这个需要一点小功力。不过也不难想。设minn为最小合法答案。

考虑F(minn)模p为0的时候后面也一定为0 由此从F(w)为0开始后面都为0所以1的部分是连续的一段。

二分出来r输出即可。复杂度\(nlogn+nlogMx\)

还有一种更快的做法 是我想出上述做法之前想到的一个做法:其实知道答案左端点minn 然后什么时候mod p为0呢?

对于一个x 存在\(x+i-1>=a_y\)那么其实\(y-i+1>=p\)即可.等式可以变成\(x+i-1>=a_{i+p-1}\)

再变形\(x>=a_{i+p-1}-i+1\)取p~n的那段的最小值 得到一个x就可以O(1)判断。

甚至不需要二分从minn开始暴力扫就行 二分也可以一个log。

所以总复杂度\(nlogn+logMx\)

code
//#include<bits\stdc++.h>
#include<iostream>
#include<iomanip>
#include<cstdio>
#include<cstring>
#include<string>
#include<ctime>
#include<cmath>
#include<cctype>
#include<cstdlib>
#include<queue>
#include<deque>
#include<stack>
#include<vector>
#include<algorithm>
#include<utility>
#include<bitset>
#include<set>
#include<map>
#define ll long long
#define db double
#define INF 1000000000
#define ldb long double
#define pb push_back
#define put_(x) printf("%d ",x);
#define get(x) x=read()
#define gt(x) scanf("%d",&x)
#define gi(x) scanf("%lf",&x)
#define put(x) printf("%d\n",x)
#define putl(x) printf("%lld\n",x)
#define gc(a) scanf("%s",a+1)
#define rep(p,n,i) for(RE int i=p;i<=n;++i)
#define go(x) for(int i=lin[x],tn=ver[i];i;tn=ver[i=nex[i]])
#define fep(n,p,i) for(RE int i=n;i>=p;--i)
#define vep(p,n,i) for(RE int i=p;i<n;++i)
#define pii pair<int,int>
#define mk make_pair
#define RE register
#define P 1000000007
#define gf(x) scanf("%lf",&x)
#define pf(x) ((x)*(x))
#define uint unsigned long long
#define ui unsigned
#define EPS 1e-8
#define sq sqrt
#define S second
#define F first
#define op(x) t[x].op
#define d(x) t[x].d
#define Set(a,v) memset(a,v,sizeof(a))
using namespace std;
char buf[1<<15],*fs,*ft;
inline char getc()
{
return (fs==ft&&(ft=(fs=buf)+fread(buf,1,1<<15,stdin),fs==ft))?0:*fs++;
}
inline int read()
{
RE int x=0,f=1;RE char ch=getc();
while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getc();}
while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getc();}
return x*f;
}
const int MAXN=100010,maxn=155;
int n,mod,cnt;
int a[MAXN];
int maxx=INF;
int main()
{
//freopen("1.in","r",stdin);
//freopen("2.out","w",stdout);
get(n);get(mod);
rep(1,n,i)get(a[i]);
sort(a+1,a+1+n);
int minn=0;
for(int i=mod,j=0;i<=n;++i,++j)minn=max(minn,a[i]-i+1),a[i]-=j,maxx=min(maxx,a[i]);
rep(1,mod-1,i)minn=max(minn,a[i]-i+1);
if(minn>=maxx){puts("0");return 0;}
int l=minn,r=1000000000;
while(l<r)
{
int mid=(l+r)>>1;
if(mid<maxx)l=mid+1;
else r=mid;
}
put(r-minn);
rep(minn,r-1,i)printf("%d ",i);
return 0;
}

写完辣 成就感慢慢的 不过掉分了/ll 下次一定涨回来。

Codeforces Round #654 (Div. 2) A~E 题解的更多相关文章

  1. Codeforces Round #612 (Div. 2) 前四题题解

    这场比赛的出题人挺有意思,全部magic成了青色. 还有题目中的图片特别有趣. 晚上没打,开virtual contest打的,就会前三道,我太菜了. 最后看着题解补了第四道. 比赛传送门 A. An ...

  2. Codeforces Round #198 (Div. 2)A,B题解

    Codeforces Round #198 (Div. 2) 昨天看到奋斗群的群赛,好奇的去做了一下, 大概花了3个小时Ak,我大概可以退役了吧 那下面来稍微总结一下 A. The Wall Iahu ...

  3. Codeforces Round #672 (Div. 2) A - C1题解

    [Codeforces Round #672 (Div. 2) A - C1 ] 题目链接# A. Cubes Sorting 思路: " If Wheatley needs more th ...

  4. Codeforces Round #614 (Div. 2) A-E简要题解

    链接:https://codeforces.com/contest/1293 A. ConneR and the A.R.C. Markland-N 题意:略 思路:上下枚举1000次扫一遍,比较一下 ...

  5. Codeforces Round #610 (Div. 2) A-E简要题解

    contest链接: https://codeforces.com/contest/1282 A. Temporarily unavailable 题意: 给一个区间L,R通有网络,有个点x,在x+r ...

  6. Codeforces Round #611 (Div. 3) A-F简要题解

    contest链接:https://codeforces.com/contest/1283 A. Minutes Before the New Year 题意:给一个当前时间,输出离第二天差多少分钟 ...

  7. Codeforces Round #654 (Div. 2)

    比赛链接:https://codeforces.com/contest/1371 A. Magical Sticks 题意 有 $n$ 根小棍,长度从 $1$ 到 $n$,每次可以将两根小棍连接起来, ...

  8. Codeforces Round #499 (Div. 2) D. Rocket题解

    题目: http://codeforces.com/contest/1011/problem/D This is an interactive problem. Natasha is going to ...

  9. Codeforces Round #499 (Div. 2) C Fly题解

    题目 http://codeforces.com/contest/1011/problem/C Natasha is going to fly on a rocket to Mars and retu ...

随机推荐

  1. 一个howdoo的预兆

    原文链接:https://medium.com/howdoo/its-an-omen-for-howdoo-b33b831ed936 它是一个预兆.它是刻在墙上的.它不会消失 随着越来越多的人对Fac ...

  2. 源码剖析@ApiImplicitParam对@RequestParam的required属性的侵入性

    问题起源 使用SpringCloud构建项目时,使用Swagger生成相应的接口文档是推荐的选项,Swagger能够提供页面访问,直接在网页上调试后端系统的接口, 非常方便.最近却遇到了一个有点困惑的 ...

  3. python面试题:redis数据库

    来源链接: https://www.cnblogs.com/jasontec/p/9699242.html https://www.cnblogs.com/Java3y/p/10266306.html ...

  4. 在flask中使用flask-migrate管理数据库

    Flask-Migrate是一个为Flask应用处理SQLAlchemy数据库迁移的扩展,使得可以通过Flask的命令行接口或者Flask-Scripts对数据库进行操作. 安装 pip3 insta ...

  5. Java数据类型自动转换(++ ,+=)

    在算术表达式中的自动类型转换 数据从类型范围小的自动向数据范围大的转换 整数向浮点数转换(包括long类型向float转换) 例子: char类型的范围内与整数之间转换依据ASCII表 强制转换会丢失 ...

  6. Spring Bean的生命周期 ---附详细流程图及测试代码

    一.生命周期流程图: Spring Bean的完整生命周期从创建Spring容器开始,直到最终Spring容器销毁Bean,这其中包含了一系列关键点 假设一个Bean实现了所有的接口,大的概况一下Be ...

  7. Ethical Hacking - GAINING ACCESS(18)

    CLIENT SIDE ATTACKS Backdooring ANY file Combine backdoor with any file - Generic solution. Users ar ...

  8. P1525 关押罪犯(洛谷)

    前几天没做题,神经有点错乱,感觉一片虚无.今天开始继续写博客. 题目描述 S 城现有两座监狱,一共关押着N名罪犯,编号分别为1-N.他们之间的关系自然也极不和谐.很多罪犯之间甚至积怨已久,如果客观条件 ...

  9. Python数据分析之全球人口数据

    这篇文章用pandas对全球的人口数据做个简单分析.我收集全球各国1960-2019年人口数据,包含男女和不同年龄段,共6个文件. pop_total.csv: 各国每年总人口 pop_female. ...

  10. python爬虫入门(4)----- selenium

    selenium 简介 selenium使用JavaScript模拟真实用户对浏览器进行操作.测试脚本执行时,浏览器自动按照脚本代码做出点击,输入,打开,验证等操作,就像真实用户所做的一样,从终端用户 ...