3.27考试总结(hnoi难度)
1 duel
1.1 Description
K·⁄¶("“uƒ¢y%¥§H5|+ (?1’m" ’m·ø?1§z<k§⁄k<⁄§lm?0,1,2...§zg ‹‰ª«mS(?1ß§o?1cgß" 3gߥ§Win The Duel§Xkı§K?¿§ {=§=Klٞ¥K§{ØC§,Ølm ›#?0,1,2..." “‹3e(" )K3S§kn¶("K§{n−1¶fi†—ٞ§KI J\§KƒØ§ƒƒUWin The Duelߌƒı§ K3\S?§XkıYƒß…Œ§?"
1.2 Input
11knŒn,c,K§L«(Œ!ßgŒ!K" e51n−1Œ§£ªfi†—Ł(" c1U^S£ªzgß3cS¥«m"
1.3 Output
ŒL«K3S¥?"
1.4 Sample Input
5 3 3
1
0
2
4
1 3
0 1
0 1
1.5 Sample Output
2
1
1.6 Data 50% : n ≤ 5000" 100% : n ≤ 100000§y?Œ3intS"
3
2 city
2.1 Description
C·I§ƒI[·¢‰|⁄/(§z¢‰k{w"CIl ¥!:8S˜veu,v ∈ S§K?¿3u,v Æ·»:pkp ∈ S" S{w8¥!:{w§\Izø{w"du›fl!”C§ zU‹k¢‰{wu)Cz§\I£zU˜{w"
2.2 Input
11kŒn,m§L«!:Œu)CzUŒ§¥¢‰?1n" 11nŒ§1iŒwiL«1i¢‰—'{w" e5n−11§z1Œx,y§L«x,y¢‰mk>º" e5m1§z1Œu,v§L«¢‰u{wCzv"
2.3 Output m + 11§1i1£ª1i−1UY"
2.4 Sample Input
6 3
-7 2 -6 2 9 -5
1 2
2 3
1 4
2 5
2 6
5 9
3 8
1 10
2.5 Sample Output
11
11
19
31
4
2.6 Data
20% : m = 0" 40% : n ≤ 20000,m ≤ 10000" 80% : m ≤ 30000" 100% : 1 ≤ n,m ≤ 200000,−1000 ≤ wi,v ≤ 1000"
今天考试打了两个暴力,第一题是纯暴力的啦。第二题打的是一个dp,修改也只修改当前路径上的值。按道理来说这个复杂度是对的,但是我们还是可以旋转树,修改树高进行优化的说。另外第三题简直太难,完全写不了,题面我也不打算丢上来了。
我打的暴力:
T1
#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<algorithm>
#include<cmath>
#include<cstring>
int n,c,k,i,j,x,y,a[5010],w[5010],l[5010],r[5010],maxl,next[5010],tot,wz1,wz2,ma,wz3,ans;
bool f=true;
using namespace std;
int main()
{
freopen("duel.in","r",stdin); freopen("duel.out","w",stdout);
cin>>n>>c>>k;
for (i=1;i<n;i++) scanf("%d",&w[i]);
for (i=1;i<=c;i++) {scanf("%d%d",&l[i],&r[i]); l[i]++; r[i]++;}
for (j=1;j<=n;j++)
{
for (i=n;i>j;i--) {a[i]=w[i-1]; next[i]=i+1;}
a[j]=k; next[j]=j+1; f=true; tot=0; next[0]=1;
for (i=1;i<j;i++) {a[i]=w[i]; next[i]=i+1;}
i=0;
while (f && i<c)
{
i++;
x=0; wz1=0;
while (x<l[i]-1) {wz1=next[wz1];x++;}
y=x; wz2=wz1; ma=0; wz3=-1;
while (y-x<=r[i]-l[i])
{
wz2=next[wz2]; y++;
if (a[wz2]>ma) {ma=a[wz2]; wz3=wz2;}
}
if (wz3==j) tot++;
if (j>wz1 && j<=wz2 && a[j]<ma) f=false;
next[wz1]=wz3;
next[wz3]=next[wz2];
}
if (tot>maxl) {maxl=tot; ans=j;}
}
cout<<ans-1;
return 0;
}
T2
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstdlib>
#include<cmath>
#include<cstring>
#include<vector>
#define ll int
ll i,j,k,x,n,m,val[200010],y,dad[200010],fa,f[200010][2],bj[200010];
bool ff=true;
using namespace std;
vector <ll> a[200010];
ll max(ll x,ll y) {if (x>y) return x;else return y;}
void ss(ll sd)
{
for (ll i=0;i<a[sd].size();i++) if (bj[a[sd][i]]==0) { bj[a[sd][i]]=bj[sd]+1; dad[a[sd][i]]=sd; ss(a[sd][i]);}
ll tot=0,maxn=-0x7fffffff;
for (ll i=0;i<a[sd].size();i++) if (bj[a[sd][i]]>bj[sd]) {if (f[a[sd][i]][1]>0) tot+=f[a[sd][i]][1]; maxn=max(maxn,f[a[sd][i]][1]);}
f[sd][1]=val[sd]+tot;
f[sd][0]=maxn;
}
void xiugai(int sd)
{
ll tot=0,maxn=-0x7fffffff;
for (ll i=0;i<a[sd].size();i++) if (bj[a[sd][i]]>bj[sd]) {if (f[a[sd][i]][1]>0) tot+=f[a[sd][i]][1]; maxn=max(maxn,f[a[sd][i]][1]);}
f[sd][1]=val[sd]+tot;
f[sd][0]=maxn;
if (dad[sd]!=0) xiugai(dad[sd]);
}
int main()
{
freopen("city.in","r",stdin); freopen("city.out","w",stdout);
cin>>n>>m;
for (i=1;i<=n;i++) scanf("%d",&val[i]);
for (i=1;i<n;i++)
{
scanf("%d%d",&x,&y);
a[x].push_back(y);
a[y].push_back(x);
}
fa=n/2;
//while (dad[fa]!=0) fa=dad[fa];
m++;
while (m--)
{
if (!ff) {scanf("%d%d",&x,&y); val[x]=y; xiugai(x); ll ans=-0x7fffffff; for (i=1;i<=n;i++) {ans=max(ans,f[i][1]); if (f[i][0]!=0 && f[i][0]>ans) ans=f[i][0]; } printf("%d\n",ans); continue;}
//for (i=1;i<=n;i++) {f[i][0]=0; f[i][1]=val[i]; bj[i]=0;}
bj[fa]=1;
if (ff) ss(fa);
ff=false;
ll ans=-0x7fffffff;
for (i=1;i<=n;i++) {ans=max(ans,f[i][1]); if (f[i][0]!=0 && f[i][0]>ans) ans=f[i][0]; }
printf("%d\n",ans);
//scanf("%d%d",&x,&y);
//val[x]=y;
}
return 0;
}
3.27考试总结(hnoi难度)的更多相关文章
- 3.29考试(HNOI难度)
一. 城镇 [ town ] Memory Limit: 128 MB Time Limit : 1s Description 在 farmer land 上,有 N 个 farmer to ...
- 3.25考试(hnoi难度)----神奇的一日游
T1怕老婆 有一天hzy9819,来到了一座大城市拥有了属于他自己的一双滑板鞋.但是他还是不满足想要拥有属于自己的一栋楼,他来到了一条宽敞的大道上,一个一个记录着这些楼的层数以方便自己选择. hzy9 ...
- 2016.3.22考试(HNOI难度)
T1 盾盾的打字机 盾盾有一个非常有意思的打字机,现在盾哥要用这台打字机来打出一段文章. 由于有了上次的经验,盾盾预先准备好了一段模板A存在了内存中,并以此为基础来打出文章B.盾盾每次操作可以将内存中 ...
- 2016 10 27 考试 dp 向量 乱搞
目录 20161027考试 T1: T2: T3: 20161027考试 考试时间 7:50 AM to 11:15 AM 题目 考试包 据说这是一套比较正常的考卷,,,嗯,,或许吧, 而且,,整个小 ...
- 2021.7.27考试总结[NOIP模拟25]
罕见的改完了题 T1 random 一堆概率,一堆函数,一堆递归,一眼不可做, 但它只有一个参数,所以.. 熠神本着"只有20太难看"的心态,通过样例三个出规律,口胡了一波$\fr ...
- 7.27考试总结(NOIP模拟25)[random·string·queue]
死亡的尽头,没有神 T1 random 解题思路 这波是找规律完胜了.. lby dalao根据样例找出了正确的式子:\(\dfrac{n^2-1}{9}\) 然而,我这个菜鸡却推出了这样一个错误的式 ...
- 2021.10.27考试总结[冲刺NOIP模拟17]
T1 宝藏 发现每个数成为中位数的长度是关于权值单调的.线段树二分判断是否合法,单调指针扫即可. 考场上写了二分,平添\(\log\). \(code:\) T1 #include<bits/s ...
- 《JavaScript网页特效经典300例》
<JavaScript网页特效经典300例> 基本信息 作者: 杨磊 张志美 丛书名: 百炼成钢系列丛书 出版社:电子工业出版社 ISBN:9787121220524 上架时间:20 ...
- Struts2 验证码图片实例
本文转载于DongLiYang的博客http://www.cnblogs.com/dongliyang/archive/2012/08/24/2654431.html 其中修改过一部分,针对使用注解而 ...
随机推荐
- Android NDK 开发(一)--环境搭建【转】
转载请注明出处:http://blog.csdn.net/allen315410/article/details/41800955 Android下的NDK开发是Android开发中不可或缺的一部分, ...
- 161011、oracle批量插入数据
需求:从一张表中查询数据插入到另外一张表 -- Created on 2016/10/13 by RICK declare -- Local variables here begin ') loop ...
- JSP注意点
一.JSP页面会编译成一个Servlet类,每个Servlet在容器中只有一个实例:在JSP中声明的变量是成员变量,成员变量只在创建实例时初始化,该变量的值将一直保存,直到实例销毁: 二.输出表达式& ...
- ServiceStack.Redis之IRedisClient 03_转
事实上,IRedisClient里面的很多方法,其实就是Redis的命令名.只要对Redis的命令熟悉一点就能够非常快速地理解和掌握这些方法,趁着现在对Redis不是特别了解,我也对着命令来了解一下这 ...
- 如何获取各大平台的播放地址(获得优酷的m3u8播放地址)为例
1.打开safari 2.在顶部(黑色小苹果)旁边,点击safari. 3.打开里面的 偏好设置. 4.在高级 中 找到 “在菜单栏中显示开发菜单” 并打勾. 5.关闭窗口后,可以发现safari 顶 ...
- Linux字符串替换一例:根据IP地址获取指定内容
需求:使用脚本获取到本机IP地址,需要添加iptables规则,需生成网段地址 源格式:获取IP地址为10.10.10.221 目标格式:10.10.10.0 # 方法1 [hadoop@localh ...
- [工具][windows][visualStudio][充电]番茄助手vaassist常见用法
参考:http://blog.csdn.net/hotdog156351/article/details/43955565 1 安装好VAS打开VS2010之后,首先关闭VA outline与VA V ...
- 每日一九度之 题目1042:Coincidence
时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:3007 解决:1638 题目描述: Find a longest common subsequence of two strings. 输入 ...
- c# 财务数据编号的生辰
实现逻辑: 根据票号前戳+生成的6位数据编号=收据号(010+000001=010000001) 作废票号 将票号作废,插入到编号表中,以此下次在使用 作废票号使用 编号表中 现在只有2,当 ...
- 1. WP8.1学习笔记
数据绑定 含义:将对象绑定到控件上 2.基本名词 控件:绑定目标 对象:绑定源(数据源) 控件与对象属性的联系:路径 如何绑定 创建对象,设置控件 在控件需要数据绑定的地方使用拓展语法 <But ...