SXYZ-6.26模拟赛
没有爆零,足矣。

发现绍兴一中机房的一个特点:键盘打得贼响!!
T1 ctrl
啃臭键在哪里
(中文名我都不好意思大打)
第一遍测T1一分都没得啊!
这跟题目描述自相矛盾有关,导致我只是轻微考虑了一下 \(a[i]\) 为负的情况。
但是没有考虑的是 \(p[i]\) 竟然也可以为零
仁者见仁,智者见智吧
一天以后的现在晚上8:00,终于把一二问的正解打出来了。主要是昨天没法测,今天lemon又频频炸掉。还好在super OJ上AK了,回来把题解补上。
T1看了题解后打对了,解题思路很巧妙,与我之前分别算法不同。正解是相对于一种状态(冰之格),把翻:转每一个各自的贡献都放在一个新数组中,情况一共分为四类:
- 翻同种状态(翻冰之格)
- $a[i]\geq0 $ 不选,反转后贡献 \(-p[i]\)
- \(a[i]\leq0\) 初始选,反转后无法选择,贡献为 \(a[i]-p[i]\)
- 翻不同状态(翻火之格)
- \(a[i]\geq0\) 翻转后依然不选(重点,当时没搞懂),贡献为 \(-p[i]\)
- \(a[i]\leq0\) 翻转后选,贡献 \(a[i]-p[i]\)
对于当前情况的贡献数组sort一下,去前m个整数即可,是不是很妙!!
这是AC代码:
#include<bits/stdc++.h>
using namespace std;
#define N 800000
int n,m,p[N],a[N],b[N],fa[N],fb[N];
long long suma=0,sumb=0;
int main(){
freopen("ctrl.in","r",stdin);
freopen("ctrl.out","w",stdout);
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++) scanf("%d",&a[i]);
for(int i=1;i<=n;i++) scanf("%d",&p[i]);
for(int i=1;i<=n;i++){
scanf("%d",&b[i]);
if(b[i]==1&&a[i]>=0) suma+=a[i];
if(b[i]==0&&a[i]>=0) sumb+=a[i];
}
for(int i=1;i<=n;i++){
if(b[i]==1){
if(a[i]<0) fa[i]=-p[i];
else fa[i]=-a[i]-p[i];
}
else{
if(a[i]<0) fa[i]=-p[i];
else fa[i]=a[i]-p[i];
}
if(b[i]==0){
if(a[i]<0) fb[i]=-p[i];
else fb[i]=-a[i]-p[i];
}
else{
if(a[i]<0) fb[i]=-p[i];
else fb[i]=a[i]-p[i];
}
}
sort(fa+1,fa+1+n);
sort(fb+1,fb+1+n);
int ma=m,mb=m;
for(int i=n;i>=1;i--){
if(fa[i]>0&&ma>0) suma+=fa[i],ma--;
if(fb[i]>0&&mb>0) sumb+=fb[i],mb--;
}
printf("%lld",max(suma,sumb));
return 0;
}
T2 genshin
原神,启动!
这道题刚刚才调对,思路就是疯狂分类讨论,我的答题思路没错,但因为if过多,加上多重样例,被卡掉了。
简单说一下思路,以黑白相邻的填充方法填充整个区间,发现角落里的贡献是2,边上贡献是3,其余贡献是4。发现用这些数可以任意组成 \(1\)~\(2*n*(n-1)\) 中除了 \(1\) ,和 \(2*n*(n-1)-1\) 外,其他均可用2,3,4组和而成。中间还要注意,我是以4位基数,而四的个数只足够完全覆盖一般,也就是 \(n*n(n-1)\),可以发现剩下一般与前一半是对称的。所以这道题就做出来了。判断输出方法可能有待改进。
以下是AC代码:
#include<bits/stdc++.h>
using namespace std;
int n4,n2,n3,sum,n,m,mm;
int check(){
int m4=0,m2=0,m3=0;
mm=m;
int f=0;
if(m>n*(n-1)){
mm=(2*n*(n-1)-m);
f=1;
}
if(mm%2==1){
m3=1;
mm-=3;
}
m4=min(n4,mm/4);
m2=(mm-m4*4)/2;
// cout<<" "<<m3<<" "<<n3;
if(f){
n4-=m4;n3-=m3;n2-=m2;
}
else{
n4=m4;n3=m3;n2=m2;
}
return 1;
}
int main(){
freopen("genshin.in","r",stdin);
freopen("genshin.out","w",stdout);
int T;
scanf("%d",&T);
while(T--){
scanf("%d%d",&n,&m);
if(n==1||m==1||m>2*n*(n-1)||m==2*n*(n-1)-1){
printf("Impossible\n");
continue;
}
if(m<=n){
printf("Possible\n");
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
if(i==1&&j<=m-1) printf("1");
else printf("0");
}
printf("\n");
}
continue;
}
int halfn=(n*n+1)/2;
if(n%2==0){
n2=2;n3=(n/2-1)*4;n4=halfn-n3-n2;
}
else {
n2=4;n3=((n+1)/2-2)*4;n4=halfn-n2-n3;
}
// printf("n:%d,n2:%d,n3:%d,n4:%d\n",n,n2,n3,n4);
if(check()){
printf("Possible\n");
int flag=0;
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
flag=flag^1;
if(i==1&&j==1&&n2>0){ printf("1"),--n2;continue;}
if(i==1&&j==n&&n2>1){ printf("1"),--n2;continue;}
if(i==n&&j==1&&n2>1){ printf("1"),--n2;continue;}
if(i==n&&j==n&&n2>0){ printf("1"),--n2;continue;}
if(flag==1&&i==1&&j!=1&&j!=n&&n3>0){ printf("1"),--n3;continue;}
if(flag==1&&j==1&&i!=1&&i!=n&&n3>0){ printf("1"),--n3;continue;}
if(flag==1&&i==n&&j!=1&&j!=n&&n3>0){ printf("1"),--n3;continue;}
if(flag==1&&j==n&&i!=1&&i!=n&&n3>0){ printf("1"),--n3;continue;}
if(flag==1&&i!=1&&j!=1&&i!=n&&j!=n&&n4>0){ printf("1"),--n4;continue;}
printf("0");
}
printf("\n");
if(n%2==0) flag=flag^1;
}
}
}
return 0;
}
备:这道题改出来确实不容易,完全坚定自己思路肝出来的一道题,祭。
T3 Ity
雨田天宇
这道题解决方法偏数学数论,代码没有打出来。但是有思路。
考场暴力有十分,非常朴素,暴力枚举每一种a,排完序后求贡献,时间复杂度 \(O(!n*nlogn*n)\) 很明显,这个暴力过于朴素。
对绝对值进行转化 \(\sum^n_{i=1}\sum^m_{j=1}(a_i \leq j)\oplus(a_{n-i+1} \leq j)\)
交换一下 \(\sum^m_{j=1}\sum^n_{i=1}(a_i \leq j)\oplus(a_{n-i+1} \leq j)\)
枚举 i ,枚举 j,计算贡献。
T4 Plan
不会,当时题都没看,溜了,溜了~
SXYZ-6.26模拟赛的更多相关文章
- 6.26模拟赛(1)总结(T1:信息传递;T2:传染病控制;T3:排列;T4:最大数)
16:33:56 2020-06-26 当然可以先看一下成绩: 非常显然的成绩不能算有多好,当然其实这也可能是假期水课的报应 (额) 但是比我集训前想象的要好一点(集训时想象的是排名前30就可以,嗯 ...
- 2019.7.26 NOIP 模拟赛
这次模拟赛真的,,卡常赛. The solution of T1: std是打表,,考场上sb想自己改进匈牙利然后wei了(好像匈牙利是错的. 大力剪枝搜索.代码不放了. 这是什么神仙D1T1,爆蛋T ...
- NOIP第7场模拟赛题解
NOIP模拟赛第7场题解: 题解见:http://www.cqoi.net:2012/JudgeOnline/problemset.php?page=13 题号为2221-2224. 1.car 边界 ...
- 52-2018 蓝桥杯省赛 B 组模拟赛(一)java
最近蒜头君喜欢上了U型数字,所谓U型数字,就是这个数字的每一位先严格单调递减,后严格单调递增.比如 212212 就是一个U型数字,但是 333333, 9898, 567567, 313133131 ...
- 7.29NOIP模拟赛
7.29NOIP模拟赛 T1 YSG (1s,64MB,ysg.in,ysg.out) 描述 ysg,yxy,azw 三人正在刷题. 他们每做一题的时间都是一个有理数. 如果在某一时刻,三人同时做完一 ...
- 2014-10-31 NOIP模拟赛
10.30 NOIp 模拟赛 时间 空间 测试点 评测方式 挖掘机(dig.*) 1s 256M 10 传统 黑红树(brtree.*) 2s 256M 10 传统 藏宝图(treas. ...
- ZROI 普及组模拟赛02总结
ZROI 普及组模拟赛02总结 先放[网址][http://zhengruioi.com/contest/96] 可能是有一段时间没有打这种正式的比赛了,今天打的很奇怪... T1 模拟水题 既然是普 ...
- 冲刺$\mathfrak{CSP-S}$集训模拟赛总结
开坑.手懒并不想继续一场考试一篇文. 既没必要也没时间侧边栏的最新随笔题解反思相间也丑 而且最近越来越懒了竟然都不写题解了……开坑也是为了督促自己写题解. 并不想长篇大论.简要题解也得写啊QAQ. 目 ...
- 20201101gryz模拟赛解题报告
写在前面 2020rp++ 停课的第一场模拟赛 拿上一年的上一年的day1来考的, 结果得分期望220pts,实际135pts,rank3,太菜了 考着考着机房灯突然灭了,当时慌的一批 以为断电代码要 ...
- NOIP模拟赛20161022
NOIP模拟赛2016-10-22 题目名 东风谷早苗 西行寺幽幽子 琪露诺 上白泽慧音 源文件 robot.cpp/c/pas spring.cpp/c/pas iceroad.cpp/c/pas ...
随机推荐
- Docker Compose在Centos下的安装与卸载
实践环境 Centos7.8 先决条件 已安装Docker Engine 安装Docker Compose 运行以下命令下载稳定版本Docker Compose $ sudo curl -L &quo ...
- 记录一下实习的第一次线下面试的答辩经历,关于seata|sentinel,gateway与栈
面的一家小公司,他们准备做单体架构升级到微服务,所以问了我一些微服务相关的东西.回答的依托答辩,今天回想起来记录一下我造出来的笑话,正常的就不写在这里了. 首先我简历上大部分写的是熟悉,只有微服务写的 ...
- CentOS 7 下将 jar 包注册为服务
前提条件 因为 jar 包启动需要用到 jdk,所以服务器上必须要安装jdk或者jre,这方面的教程网上有非常多,可以去百度一下 创建文件 创建website.service文件, 内容如下: [ro ...
- 如何查看华为的大模型(AI模型),华为官方的mindspore下的大模型???
由于华为官方的mindspore网站的设计比较反人性话,操作起来十分的复杂,因此如果想要在华为的官方网站上查找这个华为的官方大模型还是比较困难的,为此直接给出链接地址. PS. 要注意,华为的AI官方 ...
- 【转载】 【树莓派】为Ubuntu Mate for ARM 更换中国软件源
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/wr132/article/details ...
- UBUNTU18.04 SERVER 多显卡 服务器,为防止显卡计算任务出现不意外报错,设置显卡工作状态为:设定持久模式
参考: https://www.cnblogs.com/devilmaycry812839668/p/14799016.html https://www.cnblogs.com/devilmaycry ...
- gym.ActionWrapper使用时的注意点——step函数可以覆盖observation函数
本文说的这个gym.ActionWrapper继承类的问题和gym.ObservationWrapper继承类的问题性质是一样的,具体看: gym.ObservationWrapper使用时的注意点- ...
- c#12 实验特性Interceptor如何使用的一个简单但完整的示例
一直有很多转载dotnet对Interceptor说明文档的,但鲜有说明Interceptor如何使用的,这里写一篇简单示例来展示一下 c# 12 实验特性Interceptor 是什么? 官方解释如 ...
- 朋友吐槽我为什么这么傻不在源生成器中用string.GetHashCode, 而要用一个不够优化的hash方法
明明有更好的hash方法 有位朋友对我吐槽前几天我列举的在源生成器的生成db映射实体的优化点 提前生成部分 hashcode 进行比较 所示代码 public static void Generate ...
- Java类和对象 小白版
一.类 一.类的定义 具有同种属性的对象称为类.定义了它所包含的全体对象的公共特征和功能,对象就是类的一个实例化. 类的三种常见成员:属性.方法.构造器 二.类的编写 1.类名的定义: 2.类属性(特 ...