【BZOJ2709】水的二分加验证。可是好像被读入萎到了。。。

【BZOJ3229】强大的算法见此。被机房的一堆大神“推荐”。于是被坑了。。。写了一个下午。。。

【BZOJ3631】这道题给我的启发是:要多想想算法。

開始一直在打树链剖分,打到一半忽然在众神犇的提(bi)示(shi)下。发现有O(N)的方法。试想:假设要支持区间改动(加减),最后再查询,能够用什么方法?固然,线段树和树状数组等等都能够,可是最好的显然是类似于前缀和的思想。比方在L~R加上一个数,能够再L处+K。在R+1处-K。

然后最后的时候从头到尾扫过去、累加就可以。

那么这道题实际上是在树上做这个类似的操作。当然,求LCA的时候要用tarjan,否则效率又变回去了。

下面是代码。wri是为了调整,最后输出的是wri和sum的和。

void bfs(int k)
{
for (int i=1;i<n;i++)
{
int x=opt[i],y=opt[i+1];
sum[ans[i]]-=2;
sum[x]++;sum[y]++;
wri[y]--;wri[ans[i]]++;
}
int h=0,t=1;q[1]=1;
while (h<t)
{
int now=q[++h];
for (int i=end[now];i;i=a[i].next)
{
int go=a[i].go;if (go==fa[now]) continue;
q[++t]=go;
}
}
for (int j=t;j;j--)
{
int k=q[j];
sum[fa[k]]+=sum[k];
}
}

【BZOJ3609】打表找规律。据说是版权问题?就不说了。

【BZOJ1212】啊哈哈哈。又被我DP使过去啦!

【BZOJ2823&1666&1667】曾经查来的题解。。。

好像是谁的论文来着。

初始圆为1,2作为直径的圆。
For
i=2 to n
If
i不在当前圆内 then
   把当前圆设为以1,i为直径的圆
    For
j=2 to i-2
    If
j不在当前圆内 then
    把当前圆设为以j,i为直径的圆{确定初始圆}
        For
k=1 to j-1
        If
k不在当前圆内 then
           把当前圆设为I,j,k三点确定的圆。{确定三点确定的圆}
输出当前圆

【BZOJ1802】真的是好题。我们先来考虑在开头的时候放的尽量的少。

①假设有两个相邻的红格。那么我能够在放好后之后到达不论什么一个点!于是第一问就是0。至于第二问。找出全部相邻的红格,直接用DP往左右扫。

 for (int i=k-1;i;i--)
f[i]=min(f[i],f[i+1]+f[i+2]);

②否则必须在偶数格放棋子。扫一遍就可以。

for (i=2;i<n;i++)
if (a[i]&a[i+1]) {flag=1;break;}
if (!flag)
{
for (i=2;i<n;i++)
if (!(i&1)) a[i]?ans2++:ans1++;
printf("%lld\n%lld",ans1,ans2);
return 0;
}
memset(f,60,sizeof(f));
for (i=1;i<=n;i++) if (a[i]) f[i]=1;
for (i=2;i<n;i++)
if (a[i]&a[i+1]) bfs_left(i),bfs_right(i+1);
for (i=2;i<n;i++)
if (!(i&1)) ans2+=f[i];

【BZOJ3574】题解传送门(跪SYC大爷!)

【BZOJ1873】写的天昏地暗!

我认为有必要贴一下代码。

#include<cstdio>
#include<cstring>
#include<map>
#include<string>
#define N 20005
#define P 41
using namespace std;
map<string,int>pre;
const char Num[11][P]={"","","","killing spree","dominating","mega kill",
"unstoppable","wicked sick","monster kill","godlike","beyond godlike"};
const char Wri[11][P]={"","","","is on a killing spree!","is dominating!",
"has a mega kill!","is unstoppable!","is wicked sick!","has a monster kill!",
"is godlike!","is beyond godlike. someone kill him!"};
char a[P],b[P],Time[P],ch[P];
int belong[N],num[N],kill[N],last[N],death[2];
int A,B,now_Time,ok_kill,ALL,n,i,Q;
bool check()
{
A=pre[a];B=pre[b];
return A&&B&&A!=B;
}
void get_Time(){now_Time=(Time[0]*10+Time[1])*60+Time[3]*10+Time[4];}
void First()
{
if (A==B) {printf("%s has killed himself.\n",a);return;}
if (!ok_kill) {printf("%s has been killed by %s.\n",b,a);return;}
if (num[B]>=3) {printf("%s has just ended %s's %s.\n",a,b,Num[num[B]<=10? num[B]:10]);num[B]=0;return;}
printf("%s pawned %s's head.\n",a,b);num[B]=0;
if (ok_kill&&!ALL) ALL=1,printf("%s just drew first blood.\n",a);
}
void Second()
{
if (!ok_kill) return;
num[A]++;
if (num[A]>=3)
{
if (num[A]<=10) printf("%s %s\n",a,Wri[num[A]]);
else printf("%s %s\n",a,Wri[10]);
}
}
void Third()
{
if (!ok_kill) return;
if (kill[A]&&now_Time<=last[A]+10)
{
if (kill[A]==1) printf("%s just got a Double Kill!\n",a);
else printf("%s just got a Triple Kill!\n",a);
}
else kill[A]=0;
kill[A]++;last[A]=now_Time;
}
void Fourth()
{
if (!ok_kill) return;
int now=belong[B];death[now]++;death[now^1]=0;
if (death[now]>=5)
printf("The %s is OWNING!\n",!now?"Scourge":"Sentinel");
}
int main()
{
freopen("1873.out","w",stdout);
scanf("%d",&n);
for (i=1;i<=n;i++)
scanf("%s%d",a,&belong[i]),pre[a]=i;
scanf("%d",&Q);ALL=0;
while (Q--)
{
scanf("%s%s%s%s%s%s",Time,b,ch,ch,ch,a);
ok_kill=check();get_Time();
First();Second();Third();Fourth();
}
return 0;
}

【BZOJ1925*】至今还认为奇怪的DP(递推、组合数)。有空去看看。

【BZOJ1819】好题目!

用dfs序的性质。树状数组维护,还要求LCA。開始忘了怎么在dfs序的树状数组中维护某个点的子树的信息,去问了RZZ,后来发现根本就是傻X问题啊。

BZOJ 刷题记录 PART 6的更多相关文章

  1. BZOJ 刷题记录 PART 5

    拖了好久才写的. [BZOJ2821]接触分块大法.这道题略有点新颖.首先我们先分块.然后统计每块中每一个数出现的个数. 以下是联立各个方块,预处理出第I个方块到第J个方块出现正偶数次数的个数. fo ...

  2. $2019$ 暑期刷题记录1:(算法竞赛DP练习)

    $ 2019 $ 暑期刷题记录: $ POJ~1952~~BUY~LOW, BUY~LOWER: $ (复杂度优化) 题目大意:统计可重序列中最长上升子序列的方案数. 题目很直接的说明了所求为 $ L ...

  3. PE刷题记录

    PE刷题记录 PE60 / 20%dif 这道题比较坑爹. 所有可以相连的素数可以构成一张图,建出这张图,在其中找它的大小为5的团.注意上界的估算,大概在1W以内.1W内有1229个素数,处理出这些素 ...

  4. leetcode刷题记录--js

    leetcode刷题记录 两数之和 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标. 你可以假设每种输入只会对应一个答案.但 ...

  5. Leetcode刷题记录(python3)

    Leetcode刷题记录(python3) 顺序刷题 1~5 ---1.两数之和 ---2.两数相加 ---3. 无重复字符的最长子串 ---4.寻找两个有序数组的中位数 ---5.最长回文子串 6- ...

  6. 刷题记录:[HarekazeCTF2019]encode_and_encode

    目录 刷题记录:[HarekazeCTF2019]encode_and_encode 一.知识点 JSON转义字符绕过 php伪协议 刷题记录:[HarekazeCTF2019]encode_and_ ...

  7. 刷题记录:[De1CTF 2019]Giftbox && Comment

    目录 刷题记录:[De1CTF 2019]Giftbox && Comment 一.知识点 1.sql注入 && totp 2.RCE 3.源码泄露 4.敏感文件读取 ...

  8. 刷题记录:[强网杯 2019]Upload

    目录 刷题记录:[强网杯 2019]Upload 一.知识点 1.源码泄露 2.php反序列化 刷题记录:[强网杯 2019]Upload 题目复现链接:https://buuoj.cn/challe ...

  9. 刷题记录:[XNUCA2019Qualifier]EasyPHP

    目录 刷题记录:[XNUCA2019Qualifier]EasyPHP 解法一 1.error_log结合log_errors自定义错误日志 2.include_path设置包含路径 3.php_va ...

随机推荐

  1. premake在Ubuntu和GCC环境下创建简单的C++工程

    由于premake基于lua脚本,为了方便编辑lua脚本,我在emacs24中利用package system安装了lua-mode. 然后创建config.lua文件,填入下面这段,主要来自:htt ...

  2. hdu2492 Ping pong

    hdu2492 Ping pong 题意:一群乒乓爱好者居住在一条直线上,如果两个人想打比赛需要一个裁判,裁判的 位置 必须在两者之间 ,裁判的能力也必须不大于 参赛者最大的,不小于参赛者最小的 白皮 ...

  3. ajax终结篇

    Ajax中post和get的区别 在ajax中有这个方法 xmlreq.open("post","servlet/MyServlet?time="+newDat ...

  4. Java内部类——成员内部类

    成员内部类的意思就是,一个外层类里面包含着一个非static的class,举例如下: class OuterClass { //变量,函数定义... class InnerClass { //变量,函 ...

  5. hdu 4081 Qin Shi Huang's National Road System (次小生成树的变形)

    题目:Qin Shi Huang's National Road System Qin Shi Huang's National Road System Time Limit: 2000/1000 M ...

  6. 10165 - Stone Game(Nim游戏)

    UVA 10165 - Stone Game 题目链接 题意:给定n堆石子,每次能在一堆取1到多个.取到最后一个赢,问谁赢 思路:就裸的的Nim游戏,利用定理求解 代码: #include <s ...

  7. 动态规划-hdoj-4832-百度之星2014初赛第二场

    Chess Problem Description 小度和小良近期又迷上了下棋.棋盘一共同拥有N行M列,我们能够把左上角的格子定为(1,1),右下角的格子定为(N,M).在他们的规则中,"王 ...

  8. 【SSH进阶之路】Hibernate映射——多对一单向关联映射(四)

    [SSH进阶之路]Hibernate基本原理(一) ,小编介绍了Hibernate的基本原理以及它的核心,採用对象化的思维操作关系型数据库. [SSH进阶之路]Hibernate搭建开发环境+简单实例 ...

  9. QMediaPlayer的duration问题

    遇到了一个坑QMediaPlayer::duration的坑. 这个坑是当你setMedia之后, 直接使用duration获取播放时长会得到0, 出错时候的代码片段例如以下: void MainWi ...

  10. 【iOS开发-31】UITabBar背景、icon图标颜色、被选中背景设置以及隐藏UITabBar的两种方式

    一.对UITabBar背景和icon图标的一些设置 (1)由于直接给UITabBar设置的背景颜色显示的不纯.半透明的感觉,所以,有时候我们能够直接利用纯色的图片作为背景达到想要的效果. (2)给ic ...