20210716考试-NOIP19
u,v,w。
这场考过。
T1 u
差分裸题
#include<bits/stdc++.h>
using namespace std;
const int N=5000;
int n,m;
long long a[N][N],b[N][N],f[N][N];
long long ans=0;
int _max(int a,int b)
{
return a>b?a:b;
}
int _min(int a,int b)
{
return a<b?a:b;
}
int read()
{
int s=0,w=1;char ch=getchar();
while(ch<'0'||ch>'9'){if(ch=='-')w=-1;ch=getchar();}
while('0'<=ch&&ch<='9'){s=(s<<1)+(s<<3)+ch-'0';ch=getchar();}
return s*w;
}
int main()
{
n=read();m=read();
for(int i=1,r,c,l,s;i<=m;i++)
{
r=read();
c=read();
l=read();
s=read();
a[r][c]+=s;
a[r+l][c+l]-=s;
b[r+l][c]-=s;
b[r+l][l+c]+=s;
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
b[i][j+1]+=b[i][j];
a[i][j]+=a[i-1][j-1];
}
}
for(int j=1;j<=n;j++)
{
for(int i=1;i<=n;i++)
{
a[i][j]+=a[i-1][j];
b[i][j]+=b[i-1][j];
}
}
for(int j=1;j<=n;j++)
{
for(int i=1;i<=n;i++)
{
f[i][j]+=a[i][j]+b[i][j];
}
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
ans^=f[i][j];
}
}
printf("%lld\n",ans);
return 0;
}
T2 状压DP+分段记忆化(数组+map)
//不是我代码,转自网络,侵删
#include <bits/stdc++.h>
using namespace std;
map <int,double > mp;
int n,k;
char s[100];
double f[1<<25]; double dfs(int node,int tot)
{
if(tot== n - k)
return 0;
if(tot > 24 && mp.find(node)!= mp.end())
return mp[node];
if(tot <= 24 && f[node]!= -1)
return f[node];
double sum= 0;
for(int i=1;i<= (tot >>1);i++)
{
int color1= (node >> (i-1)) &1;
int color2= (node >> (tot - i)) &1;
int node1= (node >>1) & (~ ((1 << (i-1)) -1)) | (node & ((1 << (i-1)) -1));
int node2= (node >>1) & (~ ((1 << (tot - i)) -1)) | (node & ((1 << (tot - i)) -1));
sum += 2 * max(dfs(node1,tot -1) + color1,dfs(node2,tot -1) + color2) / tot;
}
if(tot &1)
{
int i= (tot +1) >>1;
int color= (node >> (i-1)) &1;
int st= (node >>1) & (~ ((1 << (i-1)) -1)) | (node & ((1 << (i-1)) -1));
sum += (dfs(st,tot -1) + color) / tot;
}
return (tot > 24)?mp[node]= sum:f[node]= sum;
} int main()
{
scanf("%d %d %s",&n,&k,s);
int node= 0;
for(int i= 0;i< (1 << 25);i++)
f[i]= -1;
for(int i=1;i<= n;i++)
node |= (s[i-1]== 'W') << (n - i);
node |= (1 << n);
printf("%.8f\n",dfs(node,n));
return 0;
}
T3 w
树形DP,f[u][0/1](二元组)表示u点上面的边反转/不反转的最少路径和最短路。
#include<bits/stdc++.h>
using namespace std;
const int inf=0x3f3f3f3f,N=300000;
struct bian
{
int nxt,to,w;
}
b[N];
int n,head[N],cnt;
pair<int,int> f[2][N];
void add(int x,int y,int w)
{
b[++cnt].nxt=head[x];
b[cnt].to=y;
b[cnt].w=w;
head[x]=cnt;
}
pair<int,int> pls(pair<int,int> a,pair<int,int> b)
{
return make_pair(a.first+b.first,a.second+b.second);
}
pair<int,int> min(pair<int,int> x,pair<int,int> y)
{
if(x.first<y.first)
return x;
else if(x.first>y.first)
return y;
else if(x.second<y.second)
return x;
else
return y;
}
void dfs(int x,int fa,int w)
{
pair<int,int> w1=make_pair(inf,inf);
pair<int,int> w2=make_pair(0,0);
for(int i=head[x];i;i=b[i].nxt)
{
if(b[i].to!=fa)
{
dfs(b[i].to,x,b[i].w);
pair<int,int> flag1=min(pls(w1,f[0][b[i].to]),pls(w2,f[1][b[i].to]));
pair<int,int> flag2=min(pls(w1,f[1][b[i].to]),pls(w2,f[0][b[i].to]));
w1=flag1;
w2=flag2;
}
}
if(w==1)
f[0][x]=make_pair(inf,inf);
else
f[0][x]=min(make_pair(w1.first+1,w1.second),w2);
if(w==0)
f[1][x]=make_pair(inf,inf);
else
f[1][x]=min(make_pair(w1.first,w1.second+1),make_pair(w2.first+1,w2.second+1));
}
int main()
{
scanf("%d",&n);
for(int i=1,from,to,c,d;i<n;i++)
{
scanf("%d%d%d%d",&from,&to,&c,&d);
if(d==2)
{
add(from,to,2);
add(to,from,2);
}
else
{
add(from,to,c!=d);
add(to,from,c!=d);
}
}
dfs(1,0,2);
printf("%d %d\n",f[0][1].first>>1,f[0][1].second);
return 0;
}
20210716考试-NOIP19的更多相关文章
- 20210716考试-NOIP16
考场时Prim的 $i$ 写成 $k$ 100->0 rank1->rank23 T1 Star Way To Heaven 考场正解:假设你要二分答案,则几个圆组成几道"屏障& ...
- 全网独家MongoDB Certified DBA Associate考试认证视频
该视频意在让所有学员一次通过考试,避免重复考试而承担的巨额考试费用! 目前MongDB发展迅猛,有赶超mysql,和oracle看齐的苗头.在这个时候MongoDB也适时的推出了官方的认证考试&quo ...
- 记lrd的高二上学期第五次调研考试
河北某某中学的调研考试其实是很好玩的经历呢.可惜没有太多机会了. 背景: NOIP2016回来之后没有好好学文化课-.自习能翘就翘了,衡中特产学案自助没有好好写(说来我好像从来没被老师查到过,上课写学 ...
- 1009: [HNOI2008]GT考试
1009: [HNOI2008]GT考试 Time Limit: 1 Sec Memory Limit: 162 MB Description 阿申准备报名参加GT考试,准考证号为N位数\(X_1X_ ...
- mysql练习题-查询同时参加计算机和英语考试的学生的信息-遁地龙卷风
(-1)写在前面 文章参考http://blog.sina.com.cn/willcaty. 针对其中的一道练习题想出两种其他的答案,希望网友给出更多回答. (0) 基础数据 student表 +-- ...
- js封装用户选项传递给Servlet之考试系统二
<%@ page language="java" import="java.util.*" contentType="text/html; ch ...
- js动态生成选项之考试系统(一)
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"% ...
- 分享一个LiteDB做的简单考试系统辅助工具
凌晨,被安排在公司值班,因为台风“灿鸿”即将登陆,风力太大,办公楼,车间等重要部分需要关注.所以无聊,那就分享一下,今天给朋友临时做的一个小的考试系统辅助工具吧.其实非常小,需求也很简单,但是可以根据 ...
- CCF考试
第八次CCF考试记录 代码还不知道对不对,过两天出成绩. 成绩出来了,310分. 100+100+100+10+0: 考试13:27开始,17:30结束,提交第4题后不再答题,只是检查前四题的代码 第 ...
随机推荐
- 论文笔记:(2019CVPR)PointConv: Deep Convolutional Networks on 3D Point Clouds
目录 摘要 一.前言 1.1直接获取3D数据的传感器 1.2为什么用3D数据 1.3目前遇到的困难 1.4现有的解决方法及存在的问题 二.本文idea 2.1 idea来源 2.2 初始思路 2.3 ...
- 大数据学习(10)—— Hive进阶
前面提到了Hive的知识点非常零散,我不知道该怎么把这些知识点分类,跟SQL关系没那么大的就放在这一篇吧. Hive Serde 参考Hive Serde Serde是啥 Serde是序列化和反序列化 ...
- WanJetpack项目:用Jetpack实现玩Android,追求最官方的实现方式
项目简介 玩Android demo.用Jetpack MVVM开发架构.单Activity多Fragment项目设计,项目结构清晰,代码简洁优雅,追求最官方的实现方式.用到以下知识点: LiveDa ...
- for循环排它算法(经典实用)
核心代码 let lis = document.querySelectorAll("li"); for(let i = 0; i < lis.length; i ++) { ...
- C语言中变参函数传参探究
背景引入 近期在看一本书,叫做<嵌入式C语言自我修养>,写的内容对我帮助很大,是一本好书.在第6章,GNU C编译器扩展语法精讲一节,这本书给出了一些变参函数的例子: //1.变参函数初体 ...
- Python从零开始编写控制程序(一)
Python之从零开始编写控制程序(一) 在此声明:本博客仅供学习参考,任何产生相关违法犯罪行为与本人无关. 另外如果有师傅有好的思路和想法,可以和我一起沟通交流. 最近在一直尝试做Powershel ...
- MongoDB-03-分片集群
分片集群(Sharding Cluster) 架构图 规划 10个实例:38017-38026 1 configserver:38018-38020 3台构成的复制集(1主两从,不支持arbiter) ...
- CNVD-2021-14536 锐捷 RG-UAC 统一上网行为管理审计系统信息泄露漏洞
漏洞简介 锐捷 RG-UAC 统一上网行为管理审计系统存在信息泄露,攻击者通过网页源代码可间接获取管理用户账号密码,登录管理后台. 漏洞复现 fofa搜索以下关键字 title="RG-UA ...
- CVE-2021-21972 vSphere Client RCE复现,附POC & EXP
漏洞简介 vSphere 是 VMware 推出的虚拟化平台套件,包含 ESXi.vCenter Server 等一系列的软件.其中 vCenter Server 为 ESXi 的控制中心,可从单一控 ...
- @ImportResource-SpringBoot使用xml配置Bean
前言 SpringBoot推荐使用注解的方式去声明bean,但还是提供了xml的方式去加载bean 一.创建要声明为bean的实体类 WzqEntity.java package com; /** * ...