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,这题要求刚好末 ...
随机推荐
- [Javascript] Keyword 'in' to check prop exists on Object
function addTo80(n ) { + n; } function memoizedAddTo80 (fn) { let cache = {}; return (n) => { /*k ...
- JS 不声明第三个变量的情况下实现两数变换
1. var a = 1; var b = 2; a = a + b; b = a - b; a = a - b; console.log(a); console.log(b); 2. var a = ...
- 洛谷 [USACO05DEC] 布局 题解
今天学了差分约束系统, 这是一道板子题. 核心:a[v]>a[u]+d 相当于从u到v连一条长度为d的有向边.由于要判断有环,所以要从0点先跑一遍spfa因为1点不一定能到所有的点. #incl ...
- THUWC2020 划船记
PS:THUWC2020在2019年 Day 1 考场外的太懒了不写了. 三题题目大意: T1: T2: 给定一个\(n(\leq 10^5)\)个结点的有向图,每条边有个limit,表示经过这条边l ...
- 第10组alpha冲刺(2/4)
队名:凹凸曼 组长博客 作业博客 组员实践情况 童景霖 过去两天完成了哪些任务 文字/口头描述 继续学习Android studio和Java 完善项目APP原型 展示GitHub当日代码/文档签入记 ...
- [学习笔记] kd-tree
本文参考这位dalao的题解 前置技能:二叉查找树 其实kd-tree很简单的啦 和BST都差不多的啦 就是在划分的时候把每一维都比较一下就行啦 (\(dalao\)的kd-tree教程) 然而本蒟蒻 ...
- 拉格朗日插值法(c++)
已给sin0.32=0.314567,sin0.34=0.333487,sin0.36=0.352274,计算sin0.3367的值 #include <iostream> #includ ...
- ICEM-圆角正方体
原视频下载地址:https://pan.baidu.com/s/1c2cNgJm 密码: rci8
- Jmeter(四十三)_性能测试分配堆内存
内存泄漏.内存溢出是什么? 内存泄露是指你的应用使用资源之后没有及时释放,导致应用内存中持有了不需要的资源,这是一种状态描述: 内存溢出是指你应用的内存已经不能满足正常使用了,堆栈已经达到系统设置的最 ...
- [RoarCTF]Easy Java
目录 [RoarCTF]Easy Java 知识点 1.WEB-INF/web.xml泄露 [RoarCTF]Easy Java 题目复现链接:https://buuoj.cn/challenges ...