a

【问题描述】
你是能看到第一题的 friends呢。
                                                         —— hja
何大爷对字符串十分有研究,于是天出题虐杀 zhx。何大爷今天为 何大爷今天为 字符串定义了新的权值计算方法。一个由小写母组成,被定义为其中出现次数最多的字符减去少。(注 被定义为其中出现次数最多的字符减去少。(注 意,在讨论出现最少的字符时候该必须至一次)何大爷给你一个字符串,何大爷想知道这的所有子中权值最是多少?
【输入格式】

第一行一个整数n,代表字符串的长度。
接下来一行n个小写字母,代表该字符串。
【输出格式】
一行个整数代表答案。
【样例输入】
10
aabbaaabab
【样例输出】
3

【数据范围与规定】

对于 30%的数据, 1≤n≤100。
对于 60%的数据, 1≤n≤1000。
对于 100%的数据, 1≤n≤106.

题目大意:

  求一个字符串子串的最多出现次数   减去    最少出现次数的 最大值

思路:

  1.爆搜

  2.正解:前缀和进行求解

    枚举右端点,使用前缀和优化。

    加入我们选定一段区间l~r,并且假设出现次数最多的为x,最少的为z,用一个数组sum[]统计一个字母到当前位置出现的次数,那么出现次数最多的字母与最少字母的差值显然为:

              sum[x][r]-sum[x][l-1]-(sum[z][r]-sum[z][l-1])

            ==> sum[x][r]-sum[z][r]-sum[x][l-1]+sum[z][l-1]

            ==> (sum[x][r]-sum[z][r])-(sum[x][l-1]-sum[z][l-1])

    然后你可以发现:前面括号中的跟后面括号中的本质上是一个东西的,长的一毛一样,只是后面的区间端点不同而已。

    但是又因为l-1一定是比r要小的,所以l-1一定会在枚举r之前就已经被处理出来;

  所以现在我们需要知道的就只有x和z到底是谁就ok:

    我们枚举每一个点,然后再枚举另一个字母,处理出最大的sum[x][r]-sum[z][r](r是我们要枚举的位置,x是这个位置上的字母,y是枚举的另一字母)。

  用来更新最大值,这样的话我们枚举出来的字母就会出现两种情况,要么x比z多,要么z比x多。

  所以我们取一个最大值来更新答案,又因为这里的sum[x][l-1]-sum[y][l-1]是前面预处理出来的,所以每次在枚举到的位置取一最小值储存一下,并且记录是在什么时候更新的这个最小值。

  并且还要注意的是:

      当last[j]==(pos[j][now] || pos[now][j])时,如果减去的话就会直接把j这个字母消去,所以在后半段我们需要把这个多减去的1加上。

      后面一部分是加没错了,可是对于前面来说就是减去1,因为(sum[x][r]-sum[z][r])-(sum[x][l-1]-sum[z][l-1])嘛!

上代码:

#include <iostream>
#include <cstring>
#include <cstdio>
#define INF 0x7fffffff
using namespace std; const int Ms = ;
const int Ys = ;
int n,ans,p,maxx,minn=INF;
char sr[Ms];
int s[Ys]; int max(int a,int b)
{ return a > b ? a : b; } int dfs(int op,int ed,int now) {
if(ed==n) return ans;
s[now]++;
maxx=,minn=INF;
for(int i=; i<Ys; ++i) {
if(s[i]==) continue;
if(s[i]>maxx) maxx=s[i];
if(s[i]<minn) minn=s[i];
}
if(maxx-minn>ans) ans=maxx-minn;
ed++;
dfs(op,ed,sr[ed]-);
} int main() {
freopen("a.in","r",stdin);
freopen("a.out","w",stdout);
scanf("%d",&n);
for(int i=; i<n; ++i)
cin>>sr[i];
for(int i=; i<n; ++i) {
p=max(p,dfs(i,i,sr[i]-));
memset(s,,sizeof(s));
maxx=,minn=INF,ans=;
}
printf("%d",p);
return ;
}

60爆搜dfs

#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std; const int N = ;
const int M = ;
char ch[M];
int n,now,ans;
int sum[N],last[N],pos[N][N],minn[N][N]; int main() {
scanf("%d",&n);
cin>>ch+; //从1开始输入
for(int i=; i<=n; ++i) {
now=ch[i]-'a';
last[now]=i; //枚举的这段距离中now最后一次出现的位置
sum[now]++; //记录出现次数
for(int j=; j<N; ++j)
if(now!=j && sum[j]) {
int tmp=ans;
ans=max(sum[now]-sum[j]-minn[now][j]-(last[j]==pos[now][j]),
sum[j]-sum[now]-minn[j][now]-(last[j]==pos[j][now]));
ans=max(ans,tmp);
}
for(int j=; j<N; ++j) {
if(sum[now]-sum[j]<minn[now][j])
minn[now][j]=sum[now]-sum[j],pos[now][j]=i;
if(sum[j]-sum[now]<minn[j][now])
minn[j][now]=sum[j]-sum[now],pos[j][now]=i;
}
}
printf("%d\n",ans);
return ;
}

AC


b

【问题描述】
你是能看到第二题的 friends呢。
                                             —— laekov
Hja和 Yjq在玩捉迷藏。 在玩捉迷藏。 Yjq躲了起来, Hja要找他。

在们玩游戏的房间 里,只有一堵不透明的墙和个双面镜子。  Hja和 Yjq可以看作平面上坐标分 别为 (xv,yv)和(xp,yp)的点。

墙是一条连接 (xw1,yw1)和(xw2,yw2)的线段,镜子是一条连接 (xm1,ym1)和(xm2,ym2)的线段。
如果 视线和障碍物有公共点,那么我们认为会被阻挡,无法看见。

如果视线和镜子有公共点,那么我们认为发生了反射。

反射的过程遵循物理规律 —— 入射角等于反射角,且反射光线与入射光线在镜子同侧。

也就是说想要看见对方, Hja和 Yjq必须在镜子的同一侧,包括所直线上(参见样例1)。

如果 视线与镜子重合,那么不会发生反射,并且被当作障碍物(参见样例4)。
Hja很想知道他站在原地能否看见 Yjq,,帮助他解决这个问题。

【输入格式】
第一行两个数 xv,yv,表示 Hja的坐标。
第二行两个数 xp,yp,表示 Yjq的坐标。
第三行四个数 xw1,yw1,xw2,yw2,分别表示墙的两个端点坐标。
第四行四个数 xm1,ym1,xm2,ym2,分别表示镜子的两个端点坐标。

【输出格式】
如果 Hja站在原地能看到 Yjq,则输出 "YES",否则输出 "NO"。

【样例输入1】
-1 3
1 3
0 2 0 4
0 0 0 1

【样例输出1】

NO

【样例输入2】

0 0
1 1
0 1 1 0
-100 -100 -101 -101

【样例输出2】
NO
【样例输入3】

0 0
1 1
0 1 1 0
-1 1 1 3

【样例输出3】
YES

【数据规模与约定】

对于100%的数据,所有坐标均为绝对值不超过10 4 的整数。输入的线段不会退化成点,且两条线段没有交点。Hja 和 Yjq 的位置不同,且不在任何一条线段上。

思路:

据说是最简单的计算几何呢(OvO)

  我悄悄的告诉你:

    其实输出YES有46分233,输出NO就更多了!有54分!

这题我选择弃疗qwq

上代码:

#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<cmath>
#include<algorithm>
using namespace std; const double eps=1e-; int sgn(double a) {
if (fabs(a)<eps) return ;
else {
if (a>0.0) return ;
else return -;
}
} struct point {
double x,y;
point() {}
point(double a,double b) {
x=a;
y=b;
}
void init() {
scanf("%lf%lf",&x,&y);
}
point operator+(const point &a)const {
point ans;
ans.x=x+a.x;
ans.y=y+a.y;
return ans;
}
point operator-(const point &a)const {
point ans;
ans.x=x-a.x;
ans.y=y-a.y;
return ans;
}
point operator*(const double &a)const {
point ans;
ans.x=x*a;
ans.y=y*a;
return ans;
}
void print() {
printf("%lf %lf\n",x,y);
}
} v,p,w1,w2,m1,m2; double cross(point a,point b) {
return a.x*b.y-a.y*b.x;
} double dot(point a,point b) {
return a.x*b.x+a.y*b.y;
} bool cross(point p1,point p2,point p3,point p4) {
if (sgn(cross(p2-p1,p3-p1))*sgn(cross(p2-p1,p4-p1))==) return false;
if (sgn(cross(p4-p3,p1-p3))*sgn(cross(p4-p3,p2-p3))==) return false;
if (sgn(max(p1.x,p2.x)-min(p3.x,p4.x))==-) return false;
if (sgn(max(p1.y,p2.y)-min(p3.y,p4.y))==-) return false;
if (sgn(max(p3.x,p4.x)-min(p1.x,p2.x))==-) return false;
if (sgn(max(p3.y,p4.y)-min(p1.y,p2.y))==-) return false;
return true;
} point getcross(point p1,point p2,point p3,point p4) {
double a=p2.y-p1.y;
double b=p1.x-p2.x;
double c=-p1.x*p2.y+p1.y*p2.x;
double d=p4.y-p3.y;
double e=p3.x-p4.x;
double f=-p3.x*p4.y+p3.y*p4.x;
double x=(b*f-c*e)/(a*e-b*d);
double y=(a*f-c*d)/(b*d-a*e);
return point(x,y);
} point calcfoot(point p1,point p2,point p3) {
double ratio=dot(p1-p2,p3-p2)/dot(p3-p2,p3-p2);
return p2+(p3-p2)*ratio;
} bool check() {
if (!cross(v,p,w1,w2)) {
if (!cross(v,p,m1,m2)) return true;
if (sgn(cross(m1-v,m2-v))== && sgn(cross(m1-p,m2-p)==)) return true;
}
if (sgn(cross(m2-m1,v-m1))*sgn(cross(m2-m1,p-m1))==) {
point foot=calcfoot(p,m1,m2);
foot=foot*2.0-p;
if (cross(v,foot,m1,m2)) {
foot=getcross(v,foot,m1,m2);
if (!cross(v,foot,w1,w2) && !cross(foot,p,w1,w2)) return true;
}
}
return false;
} int main() {
freopen("b.in","r",stdin);
freopen("b.out","w",stdout);
v.init();
p.init();
w1.init();
w2.init();
m1.init();
m2.init();
if (check()) printf("YES\n");
else printf("NO\n");
return ;
}

正解


c

【问题描述】
你是能看到第三题的 friends呢。
                                          —— aoao
众所周知,八数码问题是一个非常难的问题,但是Yjq非常有面子,他把这道题简化了一番。现在给了你一个3×3的方格图,你的目标是通过不断移动使得相邻颜色的块形成联通块。你每次的移动方式是选择一列或者一行进行置换滑动(这个解释起来比较麻烦,看下面的图就懂了)。所谓置换滑动,就是所有格子沿着给定的方向顺次移动,最后一个格子会被置换到最前面的过程。现在给定整个方格图,以及每个格子是否能够移动,求使得相同颜色联通的最小步数。
【输入格式】
输入为3×3的方格图,每个位置由五个字符组成,前四个字符分别表示上下左右四个部分的颜色,第五个字符表示该格子是否能够移动,其中0是能移动1是不能移动。
【输出格式】
一行个整数代表答案。

思路:

  bfs+并查集
  (可以把3*3的矩阵转换为6*6的点阵来进行做,查看是否连通)
  还需要注意的是储存颜色!

题目意思:

  红线==>蓝线+紫线+橙线

注意:

  存有精度的数的时候,
  一定要使用double,
  别使用float!!!

  float太坑了、、、

上代码:

#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<queue>
#define get(a,b,c) ((a-1)*12+(b-1)*4+c)
using namespace std; int en,tmp[][],color[],map[][],q[],nowmap[][],newmap[][];
bool num[],use[],right[],row[],col[],col_find[];
char s[];
struct rec {
int sta,step;
rec() {}
rec(int a,int b) {
sta=a;
step=b;
}
};
queue<rec> que;
struct edge {
int e;
edge *next;
}*v[],ed[]; void add_edge(int s,int e) {
en++;
ed[en].next=v[s];
v[s]=ed+en;
v[s]->e=e;
en++;
ed[en].next=v[e];
v[e]=ed+en;
v[e]->e=s;
} bool check(int nows) {
memset(num,false,sizeof(num));
for(int a=; a>=; a--)
for(int b=; b>=; b--)
if(a!= || b!=) {
tmp[a][b]=nows%;
num[nows%]=true;
nows/=;
}
for(int a=; a<; a++)
if(!num[a]) {
tmp[][]=a;
break;
}
int cnt=;
for(int a=; a<=; a++)
for(int b=; b<=; b++)
for(int c=; c<=; c++) {
cnt++;
color[cnt]=map[tmp[a][b]][c];
}
memset(right,false,sizeof(right));
memset(col_find,false,sizeof(col_find));
for(int a=; a<=; a++)
if(!right[a]) {
if(col_find[color[a]]) return false;
col_find[color[a]]=true;
int front=,tail=;
q[]=a;
right[a]=true;
for( ; front<=tail; ) {
int now=q[front++];
for(edge *e=v[now]; e; e=e->next)
if(color[e->e]==color[now] && !right[e->e]) {
right[e->e]=true;
q[++tail]=e->e;
}
}
}
return true;
} int main() {
freopen("c.in","r",stdin);
freopen("c.out","w",stdout);
for(int a=; a<=; a++)
for(int b=; b<=; b++) {
add_edge(get(a,b,),get(a,b,));
add_edge(get(a,b,),get(a,b,));
add_edge(get(a,b,),get(a,b,));
add_edge(get(a,b,),get(a,b,));
if (a!=) add_edge(get(a,b,),get(a+,b,));
if (b!=) add_edge(get(a,b,),get(a,b+,));
}
int cnt=;
for(int a=; a<=; a++)
for(int b=; b<=; b++) {
scanf("%s",s+);
for(int c=; c<=; c++)
if(s[c]=='R') map[cnt][c]=;
else {
if(s[c]=='G') map[cnt][c]=;
else {
if(s[c]=='B') map[cnt][c]=;
else map[cnt][c]=;
}
}
if(s[]=='') row[a]=col[b]=true;
cnt++;
}
int nows=;
if (check(nows)) {
printf("0\n");
return ;
}
que.push(rec(nows,));
use[nows]=true;
rec now;
while (que.size()) {
now=que.front();
que.pop();
int step=now.step;
int nows=now.sta;
memset(num,false,sizeof(num));
for(int a=; a>=; a--)
for(int b=; b>=; b--)
if(a!= || b!=) {
nowmap[a][b]=nows%;
num[nows%]=true;
nows/=;
}
for(int a=; a<; a++)
if(!num[a]) {
nowmap[][]=a;
break;
}
int news=;
for(int a=; a<=; a++) {
if(!row[a]) {
for(int b=; b<=; b++)
for(int c=; c<=; c++)
newmap[b][c]=nowmap[b][c];
int x=newmap[a][];
newmap[a][]=newmap[a][];
newmap[a][]=newmap[a][];
newmap[a][]=x;
news=;
for (int b=; b<=; b++)
for (int c=; c<=; c++)
if (b!= || c!=) news=news*+newmap[b][c];
if (!use[news]) {
use[news]=true;
if (check(news)) {
printf("%d\n",step+);
return ;
}
que.push(rec(news,step+));
}
x=newmap[a][];
newmap[a][]=newmap[a][];
newmap[a][]=newmap[a][];
newmap[a][]=x;
news=;
for (int b=; b<=; b++)
for (int c=; c<=; c++)
if (b!= || c!=) news=news*+newmap[b][c];
if (!use[news]) {
use[news]=true;
if (check(news)) {
printf("%d\n",step+);
return ;
}
que.push(rec(news,step+));
}
}
if(!col[a]) {
for(int b=; b<=; b++)
for(int c=; c<=; c++)
newmap[b][c]=nowmap[b][c];
int x=newmap[][a];
newmap[][a]=newmap[][a];
newmap[][a]=newmap[][a];
newmap[][a]=x;
news=;
for(int b=; b<=; b++)
for(int c=; c<=; c++)
if(b!= || c!=) news=news*+newmap[b][c];
if(!use[news]) {
use[news]=true;
if(check(news)) {
printf("%d\n",step+);
return ;
}
que.push(rec(news,step+));
}
x=newmap[][a];
newmap[][a]=newmap[][a];
newmap[][a]=newmap[][a];
newmap[][a]=x;
news=;
for(int b=; b<=; b++)
for(int c=; c<=; c++)
if(b!= || c!=) news=news*+newmap[b][c];
if(!use[news]) {
use[news]=true;
if(check(news)) {
printf("%d\n",step+);
return ;
}
que.push(rec(news,step+));
}
}
}
}
return ;
}

正解

#include <iostream>
#include <cstdio>
#include <cstring>
#include <queue>
#define get(i,j,k) ((i-1)*12+(j-1)*4+k)
using namespace std; const int D = ;
const int T = ;
const int Fx = ;
const int Nine = ;
int tmpmap[T][T],color[D],q[D];
int map[Nine][Fx],nowmap[T][T],nxtmap[T][T];
bool num[Nine],vis[Nine*],ok[D];
bool row[T],col[T],Findcol[Fx];
char s[];
struct rec {
int op,step; //起点,步数
rec() {}
rec(int a,int b) {
op=a;
step=b;
}
};
queue <rec> que; struct edge {
int to,next;
} e[];
int top,head[D];
void Add(int u,int v) {
top++;
e[top].to=v,e[top].next=head[u],head[u]=top;
top++;
e[top].to=u,e[top].next=head[v],head[v]=top;
} bool check(int nows) {
memset(num,false,sizeof(num));
for(int i=; i>=; --i)
for(int j=; j>=; --j)
if(i!= || j!=) {
tmpmap[i][j]=nows%;
num[nows%]=true;
nows/=;
}
for(int i=; i<Nine; ++i) //(压维)处理最后一位数字
if(!num[i]) {
tmpmap[][]=i;
break;
}
int cnt=;
for(int i=; i<T; ++i)
for(int j=; j<T; ++j)
for(int k=; k<Fx; ++k) {
cnt++;
color[cnt]=map[tmpmap[i][j]][k]; //按顺序记录颜色
}
memset(ok,false,sizeof(ok));
memset(Findcol,false,sizeof(Findcol));
for(int i=; i<D; ++i)
if(!ok[i]) {
if(Findcol[color[i]]) return false;
Findcol[color[i]]=true;
int h=,t=;
q[t]=i;
ok[i]=true;
while(h<=t) {
int u=q[h++];
for(int j=head[u]; j; j=e[j].next) {
int v=e[j].to;
if(color[v]==color[u] && !ok[v]) {
ok[v]=true;
q[++t]=v;
}
}
}
}
return true;
} int main() {
for(int i=; i<T; ++i)
for(int j=; j<T; ++j) {
Add(get(i,j,),get(i,j,));
Add(get(i,j,),get(i,j,));
Add(get(i,j,),get(i,j,));
Add(get(i,j,),get(i,j,));
if(i!=) Add(get(i,j,),get(i+,j,));
if(j!=) Add(get(i,j,),get(i,j+,));
}
int cnt=;
for(int i=; i<T; ++i)
for(int j=; j<T; ++j) {
scanf("%s",s+);
for(int k=; k<Fx; ++k)
if(s[k]=='R') map[cnt][k]=;
else {
if(s[k]=='G') map[cnt][k]=;
else {
if(s[k]=='B') map[cnt][k]=;
else map[cnt][k]=;
}
}
if(s[]=='') row[i]=col[j]=true; //固定
cnt++;
}
int nows=;
if(check(nows)) {
printf("0\n");
return ;
}
que.push(rec(nows,));
vis[nows]=true;
rec now;
while(!que.empty()) {
now=que.front();
que.pop();
int step=now.step,nows=now.op;
memset(num,false,sizeof(num));
for(int i=; i>=; --i)
for(int j=; j>=; --j)
if(i!= || j!=) {
nowmap[i][j]=nows%;
num[nows%]=true;
nows/=;
}
for(int i=; i<Nine; ++i) //(压维)处理最后一位数字
if(!num[i]) {
nowmap[][]=i;
break;
}
int nxt=;
for(int i=; i<T; ++i) {
if(!row[i]) {
for(int j=; j<T; ++j)
for(int k=; k<T; ++k)
nxtmap[j][k]=nowmap[j][k];
int tmp=nxtmap[i][];
nxtmap[i][]=nxtmap[i][];
nxtmap[i][]=nxtmap[i][];
nxtmap[i][]=tmp;
nxt=;
for(int j=; j<T; ++j)
for(int k=; k<T; ++k)
if(j!= || k!=)
nxt=nxt*+nxtmap[j][k];
if(!vis[nxt]) {
vis[nxt]=true;
if(check(nxt)) {
printf("%d\n",step+);
return ;
}
que.push(rec(nxt,step+));
}
tmp=nxtmap[i][];
nxtmap[i][]=nxtmap[i][];
nxtmap[i][]=nxtmap[i][];
nxtmap[i][]=tmp;
nxt=;
for(int j=; j<T; ++j)
for(int k=; k<T; ++k)
if(j!= || k!=)
nxt=nxt*+nxtmap[j][k];
if(!vis[nxt]) {
vis[nxt]=true;
if(check(nxt)) {
printf("%d\n",step+);
return ;
}
que.push(rec(nxt,step+));
}
}
if(!col[i]) {
for(int j=; j<T; ++j)
for(int k=; k<T; ++k)
nxtmap[j][k]=nowmap[j][k];
int tmp=nxtmap[][i];
nxtmap[][i]=nxtmap[][i];
nxtmap[][i]=nxtmap[][i];
nxtmap[][i]=tmp;
nxt=;
for(int j=; j<T; ++j)
for(int k=; k<T; ++k)
if(j!= || k!=)
nxt=nxt*+nxtmap[j][k];
if(!vis[nxt]) {
vis[nxt]=true;
if(check(nxt)) {
printf("%d\n",step+);
return ;
}
que.push(rec(nxt,step+));
}
tmp=nxtmap[][i];
nxtmap[][i]=nxtmap[][i];
nxtmap[][i]=nxtmap[][i];
nxtmap[][i]=tmp;
nxt=;
for(int j=; j<T; ++j)
for(int k=; k<T; ++k)
if(j!= || k!=)
nxt=nxt*+nxtmap[j][k];
if(!vis[nxt]) {
vis[nxt]=true;
if(check(nxt)) {
printf("%d\n",step+);
return ;
}
que.push(rec(nxt,step+));
}
}
}
}
return ;
}
/*
GGGG0 GGGG0 GGGG0
OGOO0 GGGG0 OGOO0
OOOO0 OGGG1 OOOO0
*/

mine

北京清北 综合强化班 Day1的更多相关文章

  1. 2017.10.1北京清北综合强化班DAY1

    a[问题描述]你是能看到第一题的 friends 呢.——hja何大爷对字符串十分有研究,于是天天出字符串题虐杀 zhx. 何大爷今天为字符串定义了新的权值计算方法.一个字符串 由小写字母组成,字符串 ...

  2. 2017.10.3北京清北综合强化班DAY3

    括号序列(bracket) Time Limit:1000ms   Memory Limit:128MB 题目描述 LYK有一个括号序列,但这个序列不一定合法. 一个合法的括号序列如下: ()是合法的 ...

  3. 2017.10.4北京清北综合强化班DAY4

    财富(treasure) Time Limit:1000ms   Memory Limit:128MB 题目描述 LYK有n个小伙伴.每个小伙伴有一个身高hi. 这个游戏是这样的,LYK生活的环境是以 ...

  4. 2017.10.7北京清北综合强化班DAY7

    1.计数 (count.cpp/c/pas) 时间限制:1s 内存限制:256MB [问题描述] 给出m个数a[1],a[2],…,a[m] 求1~n中有多少数不是a[1],a[2],…,a[m]的倍 ...

  5. 2017.10.6北京清北综合强化班DAY6

    题目大意:改变一个数的位置 把一个序列变成不下降序列 题解: 设置一个pre,如果破坏单调性,就把‘删除’这个.否则把pre修改为当前元素的值. 考试时这样得了90分,是因为我的做法只能过这样的数据 ...

  6. 2017.10.5北京清北综合强化班DAY5

    拼不出的数lost.in/.out/.cpp[问题描述]3 个元素的集合{5, 1,2} 的所有子集的和分别是0,1, 2, 3, 5, 6, 7, 8.发现最小的不能由该集合子集拼出的数字是4.现在 ...

  7. 2017.10.2北京清北综合强化班DAY2

    a[问题描述]你是能看到第一题的 friends呢.                                                —— hja世界上没有什么比卖的这 贵弹丸三还令人绝 ...

  8. 北京清北 综合强化班 Day5

    T1 思路: 输入数据,sort一下, 如果a[i]>sum+1(前缀和) 那么sum+1就一定不会被拼出来, 然后输出即可. 上代码: #include <iostream> #i ...

  9. 北京清北 综合强化班 Day4

    财富(treasure) Time Limit:1000ms   Memory Limit:128MB 题目描述 LYK有n个小伙伴.每个小伙伴有一个身高hi. 这个游戏是这样的,LYK生活的环境是以 ...

随机推荐

  1. 如何找到程序的真正入口mainCRTStartup

    相信大家都知道以为程序的入口为main函数,但是程序的真正的入口不是main而是mainCRTStartup,那么我们如何找到他的地址呢? 先用第一种方法,就是直接代码显示 #include<s ...

  2. Flask 卡住, 无响应问题

    自己学习Flask+Gevent, 做了一个小接口服务器, 但在收到请求后, 打印请求的报文, 并返回正确格式, 运行后会出现收到请求消息后,Flask卡住无响应的的问题, 有时候点击ctrl+C才能 ...

  3. vue 父子组件数据的双向绑定大法

    官方文档说明 所有的 prop 都使得其父子 prop 之间形成了一个 单向下行绑定 父级 prop 的更新会向下流动到子组件中,但是反过来则不行 2.3.0+ 新增 .sync 修饰符 以 upda ...

  4. ADO连接达梦7数据库,利用OLEDB建立连接

    达梦数据库本身提供多种驱动如JDBC ODBC OLEDB等等 在安装的时候可以进行勾选. 如果不安装数据库的驱动无法与达梦数据库建立连接. 达梦数据库在数据库构成或结构上与oracle极为相似,而且 ...

  5. SIP 3pcc

    3PCC全称Third Party Call Control,中文即第三方电话呼叫控制,指的是由第三方控制者在另外两者之间建立一个会话,由控制者负责会话双方的媒体协商.3PCC是一种非常灵活的会话控制 ...

  6. BPM软件_K2再度入选Gartner iBPMS MQ挑战者象限_全球领先的工作流引擎

    在Gartner 于1月最新发布的2018 iBPMS MQ报告中,K2再度入选“挑战者”象限,相较去年,K2在“前瞻性”方面有了显著提升. Gartner对该标准的定义为:供应商对市场具有清晰认识, ...

  7. WebLogic 12c Linux 命令行 静默安装

    CentOS 6.3安装配置Weblogic 10  http://www.linuxidc.com/Linux/2014-02/96918.htm Oracle WebLogic 11g 安装部署文 ...

  8. 解决No module named 'sklearn.cross_validation'

    sklearn中已经废弃cross_validation,将其中的内容整合到model_selection中 将sklearn.cross_validation 替换为 sklearn.model_s ...

  9. idea的使用问题解决

    IDEA集成SVN插件,用的是TortoiseSVN,SVN上明明有别人提交的内容,但是我这里点击Incoming确显示不出来 解决方案:file->Invalidate Cache/Resta ...

  10. java——Servlet

    类要实现Servlet接口: 主要功能,生成动态网页内容: HttpServlet重写doGet和doPost方法或者重写Service方法,完成对请求的响应: 如:get.post等请求的响应. - ...