【抄来的】尝试一下LLJ大佬的理论AC大法

1.BZOJ 3522 Poi2014 Hotel DFS

给定一棵树,求有多少无序三元组(x,y,z)满足x,y,z互不相等且Dis(x,y)=Dis(y,z)=Dis(x,z)

枚举中心点,分别dfs,计算答案

#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
#define M 5050
using namespace std;
struct abcd{
    int to,next;
}table[M<<1];
int head[M],tot;
int n;
long long ans;
int temp[M],f[M],g[M];
void Add(int x,int y)
{
    table[++tot].to=y;
    table[tot].next=head[x];
    head[x]=tot;
}
void DFS(int x,int from,int dpt)
{
    int i;
    temp[dpt]++;
    for(i=head[x];i;i=table[i].next)
        if(table[i].to!=from)
            DFS(table[i].to,x,dpt+1);
}
int main()
{
    int i,j,x,y;
    cin>>n;
    for(i=1;i<n;i++)
    {
        scanf("%d%d",&x,&y);
        Add(x,y);Add(y,x);
    }
    for(x=1;x<=n;x++)
    {
        memset(f,0,sizeof f);
        memset(g,0,sizeof g);
        for(i=head[x];i;i=table[i].next)
        {
            memset(temp,0,sizeof temp);
            DFS(table[i].to,x,1);
            for(j=1;j<=n;j++)
            {
                ans+=(long long)g[j]*temp[j];
                g[j]+=f[j]*temp[j];
                f[j]+=temp[j];
            }
        }
    }
    cout<<ans<<endl;
    return 0;
}

2.bzoj1912 巡逻

传送门

3.小奇的仓库

神奇的树形dp,听昕怡讲了一下,听着就蛋疼。

4.3626: [LNOI2014]LCA

不应该嘲笑LNOI.....

很神奇的题,很有 的风格(?)。

题面

题解

5 1018: [SHOI2008]堵塞的交通traffic

线段树维护区间信息

题面

题解

6【BZOJ】3319: 黑白树

题解

时间: 2024-10-14 06:12:27

【抄来的】尝试一下LLJ大佬的理论AC大法的相关文章

怎么入门python?不懂你别瞎尝试,看看大佬怎么说

学习任何一门语言都是从入门,通过不间断练习达到熟练水准.虽然万事开头难,但好的开始是成功的一半,今天这篇文章就来谈谈怎么入门python? 在开始学习python之前,你需要确定好学习计划和方式 比如:先阅读一本适合入门python的书籍,简单.基础应该要是这本书的特点,如果你没有,可以在文章底部找我,我有! 当你通过这本书熟悉了python并且掌握一些基础,就可以开始进行简单的练习了,一般书中都会有练习,当然你还需要跟多的练习,比如Python案例视频,适合你看的Python入门案例视频. 如

【一坨理论AC的题】Orz sxy大佬

1.UVA10891 Game of Sum 2.LA4254 Processor . 3.UVA10905 Children's Game 4.UVA11389 The Bus Driver Problem 5.LA4094 WonderTeam

听力的尝试

入门英语系统的学习,哪儿不足学哪儿的方式,尝试下来总有点伪理论. 就拿背单词来说,有些人的背诵技能本身就很感性.不需要拼意志力就可以完成简单的过程.倘若拼拼意志力就更不是一般的水准了.无可匹敌也. 我在尝试了单纯的去学习语法,单纯的背单词,都是想通过快速的方式去把英语学会.然,越是快速,越会适得其反.曾经所学的仿佛在一夜之间忘记.十年来竟然无所长进.无论看过多少学习方法,下载多少音视频,看过多少电影,均无效.皆因无效输入.看剧情胜过英语本身矣. 也努力刷过习题.但依然无所结果.会的会,不会的亦然

【长沙集训】2017.9.12

并不怎么傻逼的题也把自己考成傻逼.大概是全机房最后几个改完题的人了..QAQ T1 APIO2009抢掠计划 好像是之前哪位学长讲过,tarjan缩点,然后值取反跑spfa或者拓扑排序后做Dp;考场上(第一次)尝试拓扑后DP,然后十分SB地一开始只放进了起点,认为其余入度为0的点无所谓(能过那么多点也是神奇).实际上显然需要把所有入读为0的点放入栈中,dp值初始为最大,起点为0,然后一边拓扑一边dp: //Twenty #include<cstdio> #include<cstdlib&

BZOJ 1025 [SCOI2009]游戏

之前找LLJ大佬推荐水题的时候让我做这个,然后不出意料的我不会. 日常抄题解. 手玩几组数据发现它N个数可以分成多个组,每个组为一个循环,他们的LCM就是最后的层数. 预处理出n以内的所有质数,我们可以把n分解成p1^a1+p2^a2+p3^a3...不同的p之间的lcm数可以直接相乘,我们用dp递推地算答案,dp[i][j表示前i个质数和为j的lcm数,然后就可以DP了. 最后统计答案要把0~n的dp[p[0]][i]加起来,因为每个数可以单成一组. #include<cstdio> #in

bzoj1202 狡猾的商人

并查集. 传送门 日常抄代码. 太强啦. 想起了当初那道LLJ跑spfa过的题. orz sxy llj大佬 //Twenty #include<cstdio> #include<cstdlib> #include<iostream> #include<algorithm> #include<cmath> #include<cstring> #include<queue> #include<vector> co

一些DP杂题

1. [HNOI2001] 产品加工 一道简单的背包,然而我还是写了很久QAQ 时间范围是都小于5 显然考虑一维背包,dp[i]表示目前A消耗了i的最小B消耗 注意 if(b[i]) dp[j]=dp[j]+b[i]; else dp[j]=1e9+7; 可以用B则直接转移,否则要把上一次的这个状态设为正无穷,只能用后两个转移. //Twenty #include<cstdio> #include<cstdlib> #include<iostream> #include

江西理工大学南昌校区cool code竞赛

这次比赛原本就是来打酱油的,想做个签到题就走!一开始不知道1002是签到题,一直死磕1001,WA了四发过了,回头一看Rank,三十名,我靠!看了1001的AC率,在我AC之前只有一个人AC了,当时我AC了1001,感觉松了口气,终于算是签到了,看AC率,1%,吓死宝宝了!我啥时候变得这么屌了,连我们学校的大佬都没AC出来,被我这样一个菜鸡给AC了,顿时感觉信心回来了,然后我的电脑上插了一个气球,莫名其妙,还有气球???回头看1002,我靠,WA了三发,什么情况,10^9,肯定超时,WA了一发,

UI初学者必须慎重对待的五个误区

五大误区 绝大多数程序员学设计都或多或少有这些盲区.雷区: 认为审美难以提升 不但对自己的审美缺乏信心,对提升审美也没有信心. 不知如何提升审美 重理性的人,对于审美这样 “没有理论支撑” 的东西,不知如何提升. 错误的以为仅靠多看就能提升审美 都讲要善于观察.多看作品来提升审美,照做,但都没掌握「看」的关键思路:没事逛 Dribbble 觉得啥都漂亮,但其实都看了热闹;光看不做,其实「看」一定要与「做」结合,而且往往「做」在先. 认为设计有无限可能 不像有清晰思路去解决问题的编程,设计似乎都是