eoj monthly 2019.11
原题
T1 纸条
题目大意:
给出一个长度为n的字符串,其中m位未知,对于每一位未知的字母,有k个备选字母,最终答案为备选字母按字典序排序后的第x个。
题解:
签到题……
按照题目意思直接写就可以了。
#include<cstdio>
#include<algorithm>
#define N 500010
typedef long long ll;
using namespace std;
int n,m,k,num[N];
ll x;
char s[N],a[N][30];
int main()
{
scanf("%d%d%d%lld",&n,&m,&k,&x);
scanf("%s",s+1);
for (int i=1;i<=m;i++) scanf("%s",a[i]+1);
for (int i=1;i<=m;i++) sort(a[i]+1,a[i]+k+1);
for (int i=m;i;i--)
{
num[i]=(x%k)?(x%k):k;
x=x/k+((x%k)!=0);
}
for (int i=n,j=m;i;i--)
if (s[i]=='#')
{
s[i]=a[j][num[j]];
j--;
}
for (int i=1;i<=m;i++) printf("%d%c",num[i]," \n"[i==n]);
printf("%s",s+1);
return 0;
}
/*
5 2 3 3
c##nb
std
lws
*/
T2 安全带
题目大意:
给出n个点,每个点有一个点权,定义每条边的边权为端点点权之和,初始状态为相邻的点间有一条边(i-i+1,n-1)。接下来的操作为摁下一个点后,将所有其余的点与其相连(已经连接的不再连)。询问所有操作结束后,边权之和。
题解:
利用sum记录所有点权之和,每次连接时增加边权为当前点权*(sum-当前点-相邻点)。这样会导致两个都被摁下的点之间连接了两条线,所以只有利用相同的方法减去多连的线即可,即将摁下的点建一个新图,记录sum,减去图中的边,注意减时判除相邻的点(因为连接时并没有多连)。
#include<cstdio>
#define N 100010
typedef long long ll;
using namespace std;
int n,a[N],b[N];
ll sum,ans,sum1,mns;
int read()
{
int ans=0,op=1;
char c=getchar();
for (;(c<'0' || c>'9') && c!='-';c=getchar()) ;
if (c=='-') op=-1,c=getchar();
for (;c>='0' && c<='9';c=getchar()) ans*=10,ans+=c^48;
return ans*op;
}
int main()
{
n=read();
for (int i=1;i<=n;i++) a[i]=read(),sum+=a[i];
a[0]=a[n];a[n+1]=a[1];
for (int i=1;i<=n;i++)
{
b[i]=read();
if (b[i]) sum1+=a[i];
}
b[n+1]=b[1];b[0]=b[n];
for (int i=1;i<=n;i++) ans+=a[i]*a[i+1];
//printf("1: %lld\n",ans);
for (int i=1;i<=n;i++)
if (b[i])
{
ans+=a[i]*(sum-a[i-1]-a[i]-a[i+1]);
mns+=a[i]*(sum1-a[i]-(b[i-1]?a[i-1]:0)-(b[i+1]?a[i+1]:0));
}
//printf("mns %lld\n",mns);
mns/=2;
ans-=mns;
printf("%lld",ans);
return 0;
}
/*
4
2 3 4 5
1 0 1 1
*/
eoj monthly 2019.11的更多相关文章
- EOJ Monthly 2019.11 E. 数学题(莫比乌斯反演+杜教筛+拉格朗日插值)
传送门 题意: 统计\(k\)元组个数\((a_1,a_2,\cdots,a_n),1\leq a_i\leq n\)使得\(gcd(a_1,a_2,\cdots,a_k,n)=1\). 定义\(f( ...
- EOJ Monthly 2019.11 A(进制转换)
"欢迎您乘坐东方航空公司航班 MU5692 由银川前往上海......" "我们的飞机很快就要起飞了,请收起小桌板,摘下耳机......" 收起了小桌板,摘下了 ...
- EOJ Monthly 2019.2 题解(B、D、F)
EOJ Monthly 2019.2 题解(B.D.F) 官方题解:https://acm.ecnu.edu.cn/blog/entry/320/ B. 解题 单测试点时限: 2.0 秒 内存限制: ...
- EOJ Monthly 2019.3 A
A. 钝角三角形 单点时限: 3.0 sec 内存限制: 512 MB QQ 小方以前不会判断钝角三角形,现在他会了,所以他急切的想教会你. 如果三角形的三边长分别为 a, b, c (a≤b≤c), ...
- EOJ Monthly 2019.2
题解 A 回收卫星 #pragma GCC optimize(2) #pragma GCC optimize(3) #pragma GCC optimize(4) #include<bits/s ...
- EOJ Monthly 2018.11 D. 猜价格
猜价格 分两种情况讨论: k≤n,先猜至多 k 次 1,由于回答 <1 肯定是假的,所以可以把剩余系下是哪次错试出来,然后用至多 n 次搞定. k>n,每个数都猜两次,如果两次结果不一样, ...
- EOJ Monthly 2018.11 猜价格 (模拟)
分三种情况: 1.k=1.此时每次都说反话,反着二分即可. 2.1<k <= n.那么在前n次问答中一定会出现一次错误,通过不断输出1找出那个错误发生的位置(若回答是>那这就是错误) ...
- EOJ Monthly 2019.2 (based on February Selection) F.方差
题目链接: https://acm.ecnu.edu.cn/contest/140/problem/F/ 题目: 思路: 因为方差是用来评估数据的离散程度的,因此最优的m个数一定是排序后连续的,所以我 ...
- EOJ Monthly 2019.2 (based on February Selection) D.进制转换
题目链接: https://acm.ecnu.edu.cn/contest/140/problem/D/ 题目: 思路: 我们知道一个数在某一个进制k下末尾零的个数x就是这个数整除kx,这题要求刚好末 ...
随机推荐
- redash oracle 数据源docker 镜像
redash 官方的docker 镜像是没有包含oracle的,需要我们自己添加,参考了一个docker 镜像进行了简单的修改 Dockerfile FROM redash/redash:7.0.0. ...
- 在nodejs中操作数据库(MongoDB和MySQL为例)
一.使用nodejs操作MongoDB数据库 ①使用官方的mongodb包来操作 ②使用第三方的mongoose包来操作(比较常用) // 首先必须使MongoDB数据库保持开启状态 // npm下载 ...
- Hadoop 在启动或者停止的时候需要输入yes确认问题
启动或者停止hadoop的时候,信息如下: Stopping namenodes on [hadoop1 hadoop2] The authenticity of host 'hadoop2 (172 ...
- Linux系统(ubuntu)部署Asp.Net Core网站
一.前言 亲自动手尝试部署.Net Core在Linux,看了不少文章,感觉是很简单,但是做下去也会有很多问题,今天就写个文章记录下来. 二.环境安装 虚拟机(VMware),在网上找就行. 地址:h ...
- hdu4841 圆桌问题[STL vector]
目录 题目地址 题干 代码和解释 参考 题目地址 hdu4841 题干 代码和解释 解本题时使用了刚学的STL vector,注意hdu不支持万能头文件#include<bits/stdc++. ...
- [Beta]第四次 Scrum Meeting
[Beta]第四次 Scrum Meeting 写在前面 会议时间 会议时长 会议地点 2019/5/12 22:00 30min 大运村公寓6F楼道 附Github仓库:WEDO 例会照片 工作情况 ...
- 第06组 Alpha冲刺(4/6)
队名:拾光组 组长博客链接 作业博客链接 团队项目情况 燃尽图(组内共享) 组长:宋奕 过去两天完成了哪些任务 主要完成了用户联系模块的接口设计 完善后端的信息处理 GitHub签入记录 接下来的计划 ...
- rk3288 usb无线网卡支持 8188eu
第一部分是kernel 内核配置参考rk文档,把device driver 下wireless相关的先勾选上. 编译到buildin有问题,识别不到,所以打算编译成ko cd kernel/driv ...
- Predicting effects of noncoding variants with deep learning–based sequence model | 基于深度学习的序列模型预测非编码区变异的影响
Predicting effects of noncoding variants with deep learning–based sequence model PDF Interpreting no ...
- NTP时钟同步配置
NTP在Linux下有两种时钟同步方式: 直接同步(也称跳跃同步)和平滑同步(也称微调同步). 直接同步 使用ntpdate命令进行同步,直接进行时间变更. 如果服务器上存在一个12点运行的任务,当前 ...