博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hdu 5735 Born Slippy 暴力
阅读量:6612 次
发布时间:2019-06-24

本文共 1913 字,大约阅读时间需要 6 分钟。

Born Slippy

题目连接:

Description

Professor Zhang has a rooted tree, whose vertices are conveniently labeled by 1,2,...,n. And the i-th vertex is assigned with weight wi.For each s∈{1,2,...,n}, Professor Zhang wants find a sequence of vertices v1,v2,...,vm such that:1. v1=s and vi is the ancestor of vi−1 (1

Input

There are multiple test cases. The first line of input contains an integer T, indicating the number of test cases. For each test case:The first line contains an integer n and a string opt (2≤n≤216,opt∈{AND,OR,XOR}) -- the number of vertices and the operation. The second line contains n integers w1,w2,...,wn (0≤wi<216). The thrid line contain n−1 integers f2,f3,...,fn (1≤fi

Output

For each test case, output an integer S=(∑i=1ni⋅f(i)) mod (109+7).

Sample Input

3

5 AND
5 4 3 2 1
1 2 2 4
5 XOR
5 4 3 2 1
1 2 2 4
5 OR
5 4 3 2 1
1 2 2 4

Sample Output

91

139
195

Hint

题意

给你一棵树,树上点有点权,对于每个点,你需要找到到根的那条链上的一个子序列。

使得f[i] = w[v[i]] + sigma w[v[i]] opt w[v[i+1]] 最大。

然后输出sigma(if[i])%mod

题解:

不会正解,n^2dp非常简单,很容易就能想到

然后感觉这道题的数据比较难造,就直接暴力了,然后一发就过了。

代码

#include
using namespace std;const int maxn = 70000;const int mod = 1e9+7;long long dp[maxn],w[maxn];int n;vector
E[maxn];string opt;set
> S;set
>::iterator it;long long solve(long long x,long long y){ if(opt=="XOR")return x^y; if(opt=="AND")return x&y; if(opt=="OR")return x|y;}void dfs(int x){ if(S.size()!=0){ int tot = 0; for(it = S.begin();it!=S.end()&&tot<100;it++,tot++){ dp[x] = max(dp[x],-(it->first)+solve(w[it->second],w[x])); } } S.insert(make_pair(-dp[x],x)); for(int i=0;i
>opt; for(int i=1;i<=n;i++) scanf("%d",&w[i]); for(int i=2;i<=n;i++){ int a;scanf("%d",&a); E[a].push_back(i); } dfs(1); long long ans = 0; for(int i=1;i<=n;i++){ ans = (ans+i*(dp[i]%mod+w[i]%mod)) % mod; } printf("%I64d\n",ans);}int main(){ int t; scanf("%d",&t); while(t--)solve(); return 0;}

转载地址:http://qxaso.baihongyu.com/

你可能感兴趣的文章
校园的早晨
查看>>
单例模式的5种实现方式,以及在多线程环境下5种创建单例模式的效率
查看>>
oracle取前几行|中间几行|后几行
查看>>
16.1 Tomcat介绍
查看>>
QuickBI助你成为分析师——数据源FAQ小结
查看>>
十周三次课
查看>>
S/4HANA服务订单Service Order的批量创建
查看>>
2008 AD 复制有防火墙要开什么端口
查看>>
IT服务管理中的知识库建设
查看>>
【Lucene】Lucene通过CustomScoreQuery实现自定义评分
查看>>
我的友情链接
查看>>
敏捷个人应用:开发环境搭建
查看>>
Android应用程序组件Content Provider的共享数据更新通知机制分析(3)
查看>>
敏友的【敏捷个人】有感(11): 敏捷个人线下活动有感
查看>>
【VMCloud云平台】SCCM(八)OSD(二)- 模板机捕获准备
查看>>
Docker容器固定IP分配
查看>>
刺激用户危机意识,实现快速盈利的营销思维
查看>>
虚拟化系列-Citrix XenServer 6.1 网络管理
查看>>
一个电脑做Wifi热点的软件——Connectify
查看>>
英特尔嵌入式突围
查看>>