帝都Day7——解放篇

昨天晚上的problems:

songfen

坠大子段和,要把[l,r]其中一个数变成P,我们要把最小的数变成p。

当L,R没有取满整个区间,P可以在[L,R]外面!!!!!!!
这种情况真是令人绝望。就因为这种情况,爆零。

(换浏览器,现存下)

dp做法:

dp[i][0/1]:到i为止,R=I,当前是否有数被修改过

dp[i][0]=max(dp[i-1][0]+a[i],a[i]);
dp[i][1]=max(dp[i-1][1]+a[i],dp[i-1][0]+p,p);

O(n)

lowbit

异或,lowbit,求和。

ai<=1 ai<=3 ai<10

 

AC自动机:踹kmp

 

problems:

poj 3080  poj2752

manacher

分治。踹树。

70分:1024之内的,枚举数值,而不枚举下标。

 

number

剪枝:

由于A递增,

if(a>R)return;

把3个位置压成1个位置,高端打表orz

 

钦定的随机程序:

#include <bits/stdc++.h>
using namespace std;
int a[105];
int main()
{
    srand(time(NULL));
    for(int i=1;i<=88;i++)
        a[i]=i;
    rand_shuffle(a+1,a+89);//打乱a[1]...a[88]的排列顺序
    int i;
    for(i=1;i<=88;i++)//找11号所对应的下标
        if(a[i]==11)
            break;
    if(i>14)//如果11号不再前14个数
        a[5]=11;//让11号成为第5个数
    for(i=1;i<=14;i++)
        printf("%d ",a[i]);
    return 0;
}

 

 

我们讲字符串~

踹树

通过字符串,构建成一棵树,节点个数一定是最少的

询问:每个节点表示字符串前缀,

 problems

1.给定n个互不相同的串,求存在多少对数i,j满足i是j的前缀

2.给定n个串,重排字符之间的大小关系,问那些船有可能成为字典序最小的串

所有字符串长度之和<=100000(我去好难啊,没听懂。。。)

 

看毛片!

给定两个字符串S,T,判断T是否是S的子串

KMP是怎么工作的:

i表示S到哪里,j表示找到最大的B的前缀和A的后缀相等

bool kmp

 

========================

对拍:

先运行做数据的代码

然后分别运行两个代码

然后fc bubblesort.out quick.out

%errorlevel%==0:找不到差异

%errorlevel%是上一个命令的返回值

(仅限于Windows NT)

但是多叉树??!?!??!?!?!?!?!深度恨随机!!!!!???!??!?!??!?!

随机一棵长毛的链

for(int i=2;i<=n/2;i++)cout << i-1 << ' ' << i <<endl;

for(int i=n/2+1;i<=n;i++) cout<<rand()%(i-1)+1<<' ' <<i<<endl;

随机生成图

 

 

生字符串 自己YY

稻花香里说丰年
听取人生经验


 

比赛策略:

比赛成绩=比赛经验*自身实力

积累人生经验

照着数据范围判断算法

比赛经验:

1.平时多打比赛,避免出现。。。。。。那种。。。

张三/test.cpp - 551B

李四/test.cpp - 551B

2333

文件名!爆内存!

千万不要copy代码

写对拍,试一下大数据,比较***钻的数据。

lowbit 开long long 试一下大数据 发现 根本不该犯的错误!

andthen 拿到所有能拿到的分数!

不要慌,有信心。。

 

problems

NOIP2012 D2T2 借教室

NOIP2015 运输计划 可以将某一条边边权变为0 使得max{dis(ai,bi)}最小

NOIP2013 华容道

打怪兽

 

 先打加血的,再打掉血的

posted @ 2017-07-21 08:26  ghj1222  阅读(205)  评论(0编辑  收藏  举报