原题

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
*/

最新文章

  1. BZOJ 4614 【Wf2016】 Oil
  2. Windows Server 2008 双网卡同时上内外网 不能正常使用
  3. URAL 1992 CVS 可持久化链栈
  4. 纯CSS下拉导航菜单
  5. 奇怪吸引子---WimolBanlue
  6. 2016ACM-ICPC Qingdao Online青岛网络赛题解
  7. php 的简单易用的调式方法,打印方法
  8. [iOS基础控件 - 6.10.6] UIApplicationDelegate &amp; 程序启动过程
  9. nullptr和NULL 区别
  10. 网站的优化----首页优化---app调取服务端数据
  11. HTTP请求&amp;&amp;响应
  12. Spring 5.0.0.RC1 - CORS Support 【译文】
  13. Mac下hosts文件配置
  14. windows配置ssh免密登录linux
  15. react-native 新手爬坑经历(unable to load script from assets 和could not connect to development server.)
  16. Boolean数据类型
  17. [进程]kill 9和15,以及pkill, killall
  18. Centos 安装golang beego
  19. phpexcel单元格内换行
  20. 四 Python基础

热门文章

  1. selenium原理解析
  2. 14.go内置的rate包学习2(有花操作,必看)
  3. 微信小程序路由带参
  4. 个人Vim配置(即vim目录下vimrc_)
  5. java如何判断溢出
  6. 树莓派基于scratch2控制GPIO
  7. 缺陷的严重程度(Severity)
  8. Android中如何引入已经存在的标题栏
  9. el-table里面的列需要对比两个返回参数
  10. OpenFOAM——梯形腔双边驱流