T1
五种贡献恶心的要死。
$1.grand$
$2.father$
$3.brother$
$4.son$
$5.grandson$
我们选择维护三个量。
1.儿子和,$sx$
2.孙子和,$gsx$
3.自己的值,$a$
那么每次修改只需要修改自己的值,父亲的儿子和,爷爷的孙子和即可,注意儿子和孙子分开考虑。
那么查询的时候。设当前点为$x$,父亲为$f$,爷爷为$g$.
那么答案就是

$$ans=a[x]\ xor\ sx[x]\ xor\ gsx[x]\ xor\ sx[fa]\ xor\ a[x]\ xor\ a[g]$$

T2.

看一下数据范围:猜一下是$O(3^n)$

子集题我首先考虑了子集反演。

设$g[S]$为交集是$S$的子集情况下的方案数,$f[S]$是恰好的方案数。

$$g[S]=\sum\limits_{T\subseteq S}f[T]$$

反演得到。

$$f[S]=\sum\limits_{T\subseteq S}(-1)^{\left|S\right|-\left|T\right|}g[T]$$

发现根本不可做,因为交集是子集的集合根本算不出来。

考虑补集容斥。

那么我们需要让两个点能到的点没有交集即可。

因为两个点必然有自己能到的范围,所以枚举到达集合,然后让两个集合之间没有交点就可以了。

考虑构造这样两个集合,并算出方案。

$dp[S]$让$1$到达$S$中的点的方案数。

$g[S]$让$2$到达的方案数。

预处理数组$e[S]$为$S$中的边数。

设$mx$为全集。

枚举$1$所在的集合$T$得到:

$$dp[S]=2^{e[S]}-\sum\limits_{T\subseteq S}dp[T]2^{e[S\ xor\ T]}$$

$g$的转移也类似。

在统计答案的时候,枚举全集的子集$S$,同时枚举$S$补集的子集,同样原理转移即可。

$$ans=2^{e[mx]}-\sum\limits_{S\subseteq mx}\sum\limits_{T\subseteq mx\ xor\ S}dp[S]g[T]2^{e[mx\ xor\ S\ xor\ T]}$$

复杂度是$O(3^n)$

和wmz的暴力对拍结果,n=8,m=22。

T3不会.

D2T1.

其实就是只有以下一种情况是最优的,每个点有且仅有一条边没有被查看,并且这些边的和最大且为$S$

$$ans=\sum\limits{i=1}^{m}w_i-S$$

发现这些没有被查看的边形成了一颗最大生成树。

总权减树权即可。

复杂度$O(mlogm)$

D2T2.

其实是个比菜肴制作还简单的菜肴制作。

我们首先算出每个点的点权$dep[x]+a[x]$。

然后建反图跑堆拓扑即可。

原本我们是想让权值大的尽量考前。

而反图这种情况等价于让点权最小的尽量靠后,那么我们可以这样跑拓扑。

假设某个点是倒数第$i$个到达的,那么每个点权更新答案的值就是:$n-i+a[x]$。

时间复杂度$O(nlogn)$

和爆搜对拍过了n=10的点。

和wmz乱搞对拍过了n=300000,INF=1e9的点。

#include<iostream>
#include<cstdio>
using namespace std;
inline void read(int &x)
{
    x=;char c=getchar();
    ') c=getchar();
    )+(x<<)+c-,c=getchar();
}
<<|,maxn=,mod=1e9+;
],e[bitn],dp[][bitn],bin[maxn],hs[bitn];
int add(int x,int y) {return x+y>=mod?x+y-mod:x+y;}
int mul(int x,int y) {return 1LL*x*y%mod;}
?x-y+mod:x-y;}
void print(int s)
{
    ;i<=n;++i)
        ]) putchar(');
        ');
}
int main()
{
    read(n);read(m);
    ]=;i<=max(n,m);++i) bin[i]=mul(bin[i-],);
    ;i<=m;++i) read(op[i][]),read(op[i][]);
    <<n)-;
    ;s<=mx;++s)
        ;i<=m;++i)
        {
            ]-])&&(s&bin[op[i][]-])) ++e[s];
            ]-]) hs[s]|=bin[op[i][]-];
            ]-]) hs[s]|=bin[op[i][]-];
        }
    ;st<=;++st)
        ;s<=mx;++s)
            ]))
            {
                dp[st][s]=bin[e[s]];
                )&s;t;t=(t-)&s)
                    if(t&bin[st])
                        dp[st][s]=dic(dp[st][s],mul(dp[st][t],bin[e[s^t]]));
            }
    ans=bin[e[mx]];
    ;s<=mx;++s)
        ])&&!(s&bin[]))
            )&(mx^s))
                ])&&!(hs[s]&t))
                    ans=dic(ans,mul(mul(dp[][s],dp[][t]),bin[e[mx^s^t]]));
    printf("%d\n",ans);
    ;
}

国际影星

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<queue>
#include<cstring>
using namespace std;
;
inline void read(int &x)
{
    x=;char c=getchar();
    ') c=getchar();
    )+(x<<)+c-,c=getchar();
}
int ans,n,tot,a[maxn],first[maxn],f[maxn],d[maxn];
struct Road{
    int u,t,nxt;
}eage[maxn<<];
void add(int x,int y) {eage[++tot]=(Road){x,y,first[x]};first[x]=tot;}
struct st{
    int id,x;
    bool friend operator < (const st a,const st b) {return a.x>b.x;}
};
priority_queue<st> q;
void dfs(int x,int fa,int d)
{
    a[x]+=d;f[x]=fa;
    for(int i=first[x];i;i=eage[i].nxt)
        if(eage[i].t!=fa)
            dfs(eage[i].t,x,d+);
}
void topsort()
{
    int cnt=n;
    q.push((st){,a[]});
    while(!q.empty())
    {
        st x=q.top();q.pop();--cnt;
        ans=max(ans,cnt+a[x.id]);
        for(int i=first[x.id];i;i=eage[i].nxt)
        {
            --d[eage[i].t];
            if(!d[eage[i].t]) q.push((st){eage[i].t,a[eage[i].t]});
        }
    }
}
int main()
{
//    freopen("ans.in","r",stdin);
//    freopen("c.out","w",stdout);
    read(n);
    ;i<=n;++i) read(a[i]);
    ,x,y;i<n;++i)
    {
        read(x);read(y);
        add(x,y);add(y,x);
    }
    dfs(,,);
    tot=;
    memset(first,,sizeof(first));
    ;i<=n;++i) add(f[i],i),++d[i];
    topsort();
    printf("%d\n",ans);
    ;
}

口胡题fr的更多相关文章

  1. NOIP2016考前做题(口胡)记录

    NOIP以前可能会持续更新 写在前面 NOIP好像马上就要到了,感觉在校内训练里面经常被虐有一种要滚粗的感觉(雾.不管是普及组还是提高组,我都参加了好几年了,结果一个省一都没有,今年如果还没有的话感觉 ...

  2. Topcoder口胡记 SRM 562 Div 1 ~ SRM 599 Div 1

    据说做TC题有助于提高知识水平? :) 传送门:https://284914869.github.io/AEoj/index.html 转载请注明链接:http://www.cnblogs.com/B ...

  3. 口胡FFT现场(没准就听懂了)&&FFT学习笔记

    前言(不想听的可以跳到下面) OK.蒟蒻又来口胡了. 自从ZJOI2019上Day的数论课上的多项式听到懵逼了,所以我就下定决心要学好多项式.感觉自己以前学的多项式都是假的. 但是一直在咕咕,现在是中 ...

  4. Atcoder/Topcoder 口胡记录

    Atcoder/Topcoder 理论 AC Atcoder的❌游戏示范 兴致勃勃地打开一场 AGC 看 A 题,先 WA 一发,然后花了一年时间 Fix. 看 B 题,啥玩意?这能求? 睡觉觉. e ...

  5. 关于有向图走“无限次”后求概率/期望的口胡/【题解】HNCPC2019H 有向图

    关于有向图走"无限次"后求概率/期望的口胡/[题解]HNCPC2019H 有向图 全是口胡 假了不管 讨论的都是图\(G=(V,E),|V|=n,|E|=m\)上的情况 " ...

  6. PKUSC 2022 口胡题解

    \(PKUSC\ 2022\)口胡题解 为了更好的在考试中拿分,我准备学习基础日麻知识(为什么每年都考麻将 啊啊啊) 首先\(STO\)吉老师\(ORZ,\)真的学到了好多 观察标签发现,这套题覆盖知 ...

  7. BZOJ 口胡记录

    最近实在是懒的不想打代码...好像口胡也算一种训练,那就口胡把. BZOJ 2243 染色(树链剖分) 首先树链剖分,然后记录下每个区间的左右端点颜色和当前区间的颜色段.再对每个节点维护一个tag标记 ...

  8. 「口胡题解」「CF965D」Single-use Stones

    目录 题目 口胡题解 题目 有许多的青蛙要过河,可惜的是,青蛙根本跳不过河,他们最远只能跳 \(L\) 单位长度,而河宽 \(W\) 单位长度. 在河面上有一些石头,距离 \(i\) 远的地方有 \( ...

  9. 【杂题】[CodeForces 1172E] Nauuo and ODT【LCT】【口胡】

    Description 给出一棵n个节点的树,每个点有一个1~n的颜色 有m次操作,每次操作修改一个点的颜色 需要在每次操作后回答树上\(n^2\)条路径每条路径经过的颜色种类数和. \(n,m< ...

随机推荐

  1. WKWebView针对于Cordova的IOS平台性能提升

    使用cordova做跨平台开发已久,针对于Android的性能与页面渲染问题仍然让人头疼,因为仍然有一部分人使用性能一般的手机,版本在 4.2-4.4之间,甚至都无法支持HTML5的flex布局,使得 ...

  2. ADB命令无法导出文件到物理机上处理办法

    因为想查看一下脚本生成的sqlite文件.就想导出文件,,结果导出adb pull命令一直报错.使用su也是错误的..最后发现adb pull 不能再adb的命令状态下执行.需要退出adb命令.然后直 ...

  3. 六、springboot 简单优雅是实现短信服务

    前言 上一篇讲了 springboot 集成邮件服务,接下来让我们一起学习下springboot项目中怎么使用短信服务吧. 项目中的短信服务基本上上都会用到,简单的注册验证码,消息通知等等都会用到.所 ...

  4. java中List、Set和Map三个接口及其主要实现类

    三个接口都在java.util包下 List与Set具有相似性,它们都是单列元素的集合,所以,它们有一个共同的父接口,叫Collection,Map没有继承Collection接口 1.List接口: ...

  5. 某CTF平台一道PHP代码注入

    这道题以前做过但是没有好好的总结下来.今天又做了一下,于是特地记录于此. 首先就是针对源码进行审计: 关于create_function这个函数可以看一下这个:http://www.php.cn/ph ...

  6. ES6——箭头函数与普通函数的区别

    ES6标准新增了一种新的函数:Arrow Function(箭头函数). 为什么叫Arrow Function?因为它的定义用的就是一个箭头: 语法: //1.没有形参的时候 let fun = () ...

  7. 一种Cortex-M内核中的精确延时方法

    本文介绍一种Cortex-M内核中的精确延时方法 前言 为什么要学习这种延时的方法? 很多时候我们跑操作系统,就一般会占用一个硬件定时器--SysTick,而我们一般操作系统的时钟节拍一般是设置100 ...

  8. HDU - 1512  Monkey King

    Problem Description Once in a forest, there lived N aggressive monkeys. At the beginning, they each ...

  9. 部署主从dns

    主机部署:yum安装DNS服务和依赖 [admin@haifly-bj-dns1 ~]$ sudo yum install bind-chroot启动named-chroot服务 [admin@hai ...

  10. 面试必备:高频算法题终章「图文解析 + 范例代码」之 矩阵 二进制 + 位运算 + LRU 合集

    Attention 秋招接近尾声,我总结了 牛客.WanAndroid 上,有关笔试面经的帖子中出现的算法题,结合往年考题写了这一系列文章,所有文章均与 LeetCode 进行核对.测试.欢迎食用 本 ...