GDKOI 2021 Day2 PJ 去世记
比赛时和昨天一样困,后面的大奆打代码的速度简直了
T1
用 2、4、6、8 来与 5 抵消掉末尾的 0 ,然后用周期问题的方法直接乘起来并取个位
#include<bits/stdc++.h>
using namespace std;
const int tw[4]={6,2,4,8};
const int th[4]={1,3,9,7};
const int fr[4]={6,4};
const int sv[4]={1,7,9,3};
const int gi[4]={6,8,4,2};
const int nn[4]={1,9};
int ans=1,x[15];
int main() {
freopen("math.in","r",stdin);
freopen("math.out","w",stdout);
for(int i=1;i<11;i++)scanf("%d",&x[i]);
if(x[2]>x[5])x[2]-=x[5],x[5]=0;
else x[5]-=x[2],x[2]=0;
if(x[4] && x[5]) {
if(x[4]>x[5])ans*=tw[x[5]%4],x[4]-=x[5],x[5]=0;
else ans*=tw[x[4]%4],x[5]-=x[4],x[4]=0;
}
if(x[6] && x[5]) {
if(x[6]>x[5])ans*=th[x[5]%4],x[6]-=x[5],x[5]=0;
else ans*=th[x[6]%4],x[5]-=x[6],x[6]=0;
}
if(x[8] && x[5]) {
if(x[8]>x[5])ans*=fr[x[5]%4],x[8]-=x[5],x[5]=0;
else ans*=fr[x[8]%4],x[5]-=x[8],x[8]=0;
}
if(x[2])ans*=tw[x[2]%4];
if(x[3])ans*=th[x[3]%4];
if(x[4])ans*=fr[x[4]&1];
if(x[6])ans*=6;
if(x[7])ans*=sv[x[7]%4];
if(x[8])ans*=gi[x[8]%4];
if(x[9])ans*=nn[x[9]&1];
if(x[5])ans*=5;
printf("%d",ans%10);
}
T2
用 Bfs 维护每一个点管理的值域和它在原数组中的下标,模拟即可
#include<bits/stdc++.h>
using namespace std;
struct rg {
int l,r,p;
rg(int x,int y,int z):
l(x),r(y),p(z) { }
}u(0,0,0);
int T,n,k,x[100005];
queue<rg>q;
inline bool Bfs() {
q.push(rg(1,n,1)),k=1;
while(!q.empty()) {
u=q.front(),q.pop();
if(x[k+1]<x[u.p] && x[k+2]>x[u.p])
if(x[k+1]>=u.l && x[k+1]<=u.r && x[k+2]>=u.l && x[k+2]<=u.r) {
q.push(rg(u.l,x[u.p]-1,k+1)),q.push(rg(x[u.p]+1,u.r,k+2)),k+=2;
}
}
}
int main() {
freopen("tree.in","r",stdin);
freopen("tree.out","w",stdout);
scanf("%d",&T);
while(T--) {
scanf("%d",&n);
for(int i=1;i<=n;i++)
scanf("%d",&x[i]);
Bfs();
if(k<n)puts("NO");
else puts("YES");
}
}
T3
倍增。还要打人工栈
不会
T4
直接把原图限平分可以得到一个 0/1 的图,发现部分分中有这一等,
可以建边然后二分图匹配,本蒟蒻学奆佬打 Dinic 结果 Wa 40
望大神指正
#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
const int N=2005,M=2010000;
int n,cnt=1,S,T,dep[N],vis[N],lst[N],cur[N],nxt[M],to[M];
LL qz[M],x[N][N],y[N][N],fl[M],R[N],C[N];
queue<int>q;
inline void Ae(int fr,int go,int vl) {
to[++cnt]=go,qz[cnt]=vl,nxt[cnt]=lst[fr],lst[fr]=cnt;
}
inline bool Bfs() {
for(int i=1;i<=T;i++)cur[i]=lst[i];
memset(dep,0,sizeof(dep));
memset(vis,0,sizeof(vis));
q.push(S),vis[S]=1;
while(!q.empty()) {
register int u=q.front(); q.pop();
for(int i=lst[u],v;i;i=nxt[i])
if(!vis[v=to[i]] && qz[i]>fl[i]){
dep[v]=dep[u]+1;
q.push(v),vis[v]=1;
}
} return dep[T];
}
LL Dfs(int u,LL low){
if(u==T||low==0) return low;
register LL use=0,rl;
for(int &i=cur[u],v;i;i=nxt[i])
if(dep[u]+1==dep[v=to[i]]) {
if(rl=Dfs(v,min(low,qz[i]-fl[i]))) {
fl[i]+=rl,fl[i^1]-=rl,use+=rl,low-=rl;
if(!low) break;
}
}
return use;
}
inline void Dinic() {
while(Bfs()) {
while(Dfs(S,10000000000000000ll));
}
}
int main() {
// freopen("matrix.in","r",stdin);
// freopen("matrix.out","w",stdout);
scanf("%d",&n);
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++) {
scanf("%lld",&x[i][j]);
C[j]+=x[i][j];
R[i]+=x[i][j];
}
S=n*2+1,T=n*2+2;
for(int i=1;i<=n;i++) {
Ae(S,i,R[i]/2),Ae(i,S,0);
Ae(i+n,T,C[i]/2),Ae(T,i+n,0);
}
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++) {
Ae(i,j+n,x[i][j]),Ae(j+n,i,0);
}
Dinic();
for(int i=1;i<=n;i++)
for(int j=lst[i];j;j=nxt[j]) {
y[i][to[j]-n]=fl[j^1]>0?fl[j^1]:-fl[j^1];
}
for(int i=1;i<=n;i++) {
for(int j=1;j<=n;j++)
printf("%lld ",y[i][j]);
putchar(10);
}
for(int i=1;i<=n;i++) {
for(int j=1;j<=n;j++)
printf("%lld ",x[i][j]-y[i][j]);
putchar(10);
}
return 0;
}
总结
今天爆零,我不禁担忧自己的提高组,
正好今天听了高嘉煊的讲话,希望我注意一下自己的训练方式
GDKOI 2021 Day2 PJ 去世记的更多相关文章
- GDKOI 2021 Day3 PJ 懵逼记
今天早了一点起来,初三的大奆都来做比赛了, 自然,自测的有许多 AK 虽然今天的题比昨天简单,但还是脑子还是十分迟钝,以至于贪心都想不出 真为明天的提高组而担忧 T1 斜率被卡 90 ,直接用勾股定理 ...
- GDKOI 2021 Day1 PJ 爆炸记
早上睡到 7:10 分才想起今天有 GDKOI ,赶紧去买了一个面包赶去机房 发现隔壁的大奆都过来了.比赛时由于昨晚一直没睡好,打了两个小时的哈欠 T1 :暴力模拟 根据 \(r\) 和 \(c\) ...
- GDKOI 2021 Day2 TG 总结
又是爆炸的一天,炸多了本蒟蒻已经习以为常 但今天比昨天整整高了 40 分!!!!却还是没有 100 今天本蒟蒻本想模仿奆佬的打字速度,结果思路混乱让我无法开始 T1 不是吧怎么是期望 dp ,期望值怎 ...
- noip2017 PJ AK记
嗨小朋友们大家好,还记得我是谁吗?我就是为RE代言的蒟蒻--xzz day1 蛤?四楼只有一个考场???在逗我 然后解压 蛤?空军68年????我怎么不知道???huaji 蛤?T1这么sb?切掉 蛤 ...
- ZJOI2018 Day2 滚粗记 + 流水账
一脸懵逼地就被直接拉过来浙江省选了,一年参加两次省选成就达成-- 讲课啥的都没听,过去休息了一天就进行比赛了.考试之前感冒没好透,精神不是 \(100\%\) 的状态,但是并无大碍(反正最后都很凉). ...
- 2021/1/20随记,MTU
背景: 事情是这样的,客户2台防火墙部署了ipsec,内网互通,但是其中ssh以及其他大命令之类的操作就会卡住,简单的vi命令可以使用. 解决: 排除网络问题,因为内网互通,其次是系统层面问题,最终定 ...
- GDOI 2021 普及组溺水记
Day 1 T1 一看样例:答案不就是 \(\dfrac{\max_{i=1}^n a_i +1}{2}\) 吗? 于是自信打上,拍都不拍.然后就,,对了? 插曲:自己出了一个极端数据,发现 scan ...
- GDKOI 2021 Day1 TG 。。。
看着一群群比 LHF , HQX 还强的大佬涌进了机房,本蒟蒻表示慌得一批 T1 讲题人说最简单的签到题本蒟蒻表示... \(Update\) 用 ds , dt 两个变量记录点 i 连向 s 或 t ...
- CSP 2021 总结
CSP 2021 总结 PJ 开题顺序:1342 应该先做 T2 ,导致我 T2 直接看错 T1.T3 T1 :直接推规律即可,考场的想法应该正确 T3 :好家伙直接 map 走起 T2 最崩溃的来了 ...
随机推荐
- 设置IDEA启动时不打开上次项目
步骤 1.启动IDEA,点击File 2.点击setting,在Appearance&Behavior中找到System Setting 3.取消勾选Reopen projects on st ...
- 深度理解springboot集成cache缓存之源码解析
一.案例准备 1.创建数据表(employee表) 2.创建Employee实体类封装数据库中的数据 @AllArgsConstructor @NoArgsConstructor @Data @ToS ...
- Blazor 使用拖放(drag and drop)上传文件
在很多上传文件的应用实例中, 都可以看到[拖放文件到此上传]这种骚功能 ,今天我们就来试试Blazor能不能完成这个想法. 简述HTML5拖放 拖放是HTML5标准的一部分,任何元素都能够拖放,也能够 ...
- Java学习day41
在力扣刷了几个算法题,对比了自己和优解的差距
- jmeter并发设置的原理
目录 简介 广义并发 绝对并发 简介 性能测试过程中是否需要进行同步定时器的设置,需要根据实际情况来考虑. 举个栗子来讲是我们的双十一秒杀活动,这时候就必须实现请求数量达到一定数量后同时向服务 ...
- Linux:文件解压、复制和移动的若干坑
Linux下进行文件的解压.复制.移动应该是最常见的操作了.尤其是我们在项目中使用大量的数据集文件(比如机器学习)时.然而使用这些命令时一不留神就会掉进坑里,这篇文章我们就来细数用Shell进行文件操 ...
- Quantexa CDI(场景决策智能)Syneo平台介绍
Quantexa 大数据服务提供商, 使用实体解析, 关系分析和人工智能技术帮助客户进行数据处理和预防金融犯罪. 企业概览 2016年成立, 当前规模500人 服务特色是场景决策智能CDI(conte ...
- C# 有关List<T>的Contains与Equals方法
[以下内容仅为本人在学习中的所感所想,本人水平有限目前尚处学习阶段,如有错误及不妥之处还请各位大佬指正,请谅解,谢谢!] !!!观前提醒!!! [本文内容可能较为复杂,虽然我已经以较为清晰的方式展 ...
- 超全!华为交换机端口vlan详解~
关注「开源Linux」,选择"设为星标" 回复「学习」,有我为您特别筛选的学习资料~ 华为交换机和其他品牌的交换机在端口的vlan划分上有一些区别,今天就和大家详细说说华为交换机的 ...
- 原来 Linux 日志文件系统是这样工作的~
关注「开源Linux」,选择"设为星标" 回复「学习」,有我为您特别筛选的学习资料~ 作者:Linux Performance 链接:http://linuxperf.com/?p ...