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的更多相关文章

  1. 20210716考试-NOIP16

    考场时Prim的 $i$ 写成 $k$ 100->0 rank1->rank23 T1 Star Way To Heaven 考场正解:假设你要二分答案,则几个圆组成几道"屏障& ...

  2. 全网独家MongoDB Certified DBA Associate考试认证视频

    该视频意在让所有学员一次通过考试,避免重复考试而承担的巨额考试费用! 目前MongDB发展迅猛,有赶超mysql,和oracle看齐的苗头.在这个时候MongoDB也适时的推出了官方的认证考试&quo ...

  3. 记lrd的高二上学期第五次调研考试

    河北某某中学的调研考试其实是很好玩的经历呢.可惜没有太多机会了. 背景: NOIP2016回来之后没有好好学文化课-.自习能翘就翘了,衡中特产学案自助没有好好写(说来我好像从来没被老师查到过,上课写学 ...

  4. 1009: [HNOI2008]GT考试

    1009: [HNOI2008]GT考试 Time Limit: 1 Sec Memory Limit: 162 MB Description 阿申准备报名参加GT考试,准考证号为N位数\(X_1X_ ...

  5. mysql练习题-查询同时参加计算机和英语考试的学生的信息-遁地龙卷风

    (-1)写在前面 文章参考http://blog.sina.com.cn/willcaty. 针对其中的一道练习题想出两种其他的答案,希望网友给出更多回答. (0) 基础数据 student表 +-- ...

  6. js封装用户选项传递给Servlet之考试系统二

    <%@ page language="java" import="java.util.*" contentType="text/html; ch ...

  7. js动态生成选项之考试系统(一)

    <%@ page language="java" import="java.util.*" pageEncoding="utf-8"% ...

  8. 分享一个LiteDB做的简单考试系统辅助工具

    凌晨,被安排在公司值班,因为台风“灿鸿”即将登陆,风力太大,办公楼,车间等重要部分需要关注.所以无聊,那就分享一下,今天给朋友临时做的一个小的考试系统辅助工具吧.其实非常小,需求也很简单,但是可以根据 ...

  9. CCF考试

    第八次CCF考试记录 代码还不知道对不对,过两天出成绩. 成绩出来了,310分. 100+100+100+10+0: 考试13:27开始,17:30结束,提交第4题后不再答题,只是检查前四题的代码 第 ...

随机推荐

  1. Java面向对象14——接口

    接口  package oop.demon01.demon09; ​ //抽象思维~Java ​ //interface 定义的关键字 , 接口都需要有实现类 public interface Use ...

  2. cs派生msf shell

    msf5 > use exploit/multi/handler [*] Using configured payload windows/meterpreter/reverse_http ms ...

  3. Moco框架jar下载

    下载地址: https://repo1.maven.org/maven2/com/github/dreamhead/moco-runner/0.10.0/ 选择如下图下载 下载成功即可使用

  4. gRPC学习之二:GO的gRPC开发环境准备

    欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos gRPC学习系列文章链接 在CentOS7部署和设置G ...

  5. 【Java】jeesite初始配置以及代码生成工具的使用

    jeesite简单使用 首先去技术服务与支持.版本区别一览表 - JeeSite 4.x找到源码下载的部分 JeeSite 源码下载:https://gitee.com/thinkgem/jeesit ...

  6. (一)Linux之目录结构

    Linux之目录结构 目录 Linux之目录结构 一.概述 一.基本介绍 二.具体的目录结构(不用背,知道即可) Linux /usr目录 Linux /var 目录 一.概述 学习 Linux,不仅 ...

  7. Splay做题笔记

    模板 题目描述: 辣鸡ljh NOI之后就退役了,然后就滚去学文化课了. 他每天都被katarina大神虐,仗着自己学过一些姿势就给katarina大神出了一道题. 有一棵 \(n\) 个节点的以 1 ...

  8. spring boot 2.0.0 + shiro + redis实现前后端分离的项目

    简介 Apache Shiro是一个强大且易用的Java安全框架,执行身份验证.授权.密码学和会话管理.使用Shiro的易于理解的API,您可以快速.轻松地获得任何应用程序,从最小的移动应用程序到最大 ...

  9. 【springcloud】Zuul 超时、重试、并发参数设置

    转自:https://blog.csdn.net/xx326664162/article/details/83625104 一. Zuul 服务网关 服务网关 = 路由转发 + 过滤器 1.路由转发: ...

  10. Javascript - Vue - webpack中的axios

    导入axios import Vue from "vue";import axios from "axios";import { get } from &quo ...