n诺挑战赛5题解
Drinking
题意:就是给你n瓶酒的初始伤害值,第几天喝这瓶酒伤害值就是这瓶酒的初始伤害值第几倍,而且他每天喝的瓶数不超过m。要你输出所有的情况,就是他喝(1~n)瓶的伤害值的最小,
思路:就是这些酒从小到大排序,越小的越往后退,这就相当于是一个火车,每一个车厢只能装m个人,每往后座一节车厢,自己的票价就要多加一次,
当酒瓶数没有超过m时,就是第一天可以吃完的,不就是酒瓶从小到大的前缀和吗?
当大于m时,例如当酒瓶数k = m +1 时,第一瓶酒被挤到了第二天去吃,第m+1块酒瓶要第一天吃,不就是吃m瓶酒在上第一一瓶酒和第m+1瓶酒吗?
因为是m瓶一循环,所以当瓶数p大于m时,与p-1瓶时相比所有(p%m)的倍数都往后推了一天,也就是伤害值增加了(a[p%m], a[p%m+m].....a[p-m]},同时a[p]也增加进来了
因此我们要先把大于m时的每加一瓶所要加的伤害值预处理出来
然后一次求前缀和
#include <iostream>
#include <cmath>
#include <cstdio>
#include <algorithm>
#include <cstring>
#include <string>
#include <vector>
#include <set>
#include <map>
#include <queue> using namespace std;
const int N = 2e5 +;
typedef long long ll;
ll a[N],ans[N],b[N];
int main()
{
int n,m;
cin >> n >> m;
for(int i = ; i <= n; i ++)
{
scanf("%d",&a[i]);
}
sort(a+,a+n+);
for(int j = m + ; j <= n; j++ )
{
b[j] = b[j-m] + a[j-m];//预处理第j天比(j-1)天要多加的伤害值
//第j天我们要把所有(j%m)的倍数中小于j的都加一次
}
for(int i=;i<=n;i++)
{
a[i]=a[i-]+a[i] + b[i];
//b[i]表示第i天除了由第0天变道第一天的其他所有添加的伤害值
printf("%lld ",a[i]);
}
return ;
}
River's lake
题意:a[1]=1,a[2]=3,...a[n]=a[n-1]*3 + a[n-2]*2;,这是一个矩阵快速幂的裸体,而且已经给出了状态转移矩阵,但是这个题有一个坑点就是这个斐波那契数列不是从零开始的而是从一开始的,因此n要先减去一个1
代码:
#include <iostream>
#include <algorithm>
#include <bits/stdc++.h> using namespace std;
typedef long long ll;
const int Mod = 1e5;
void mul(int f[],int a[][])
{
int c[];
memset(c,,sizeof(c));
for(int i=;i<;i++)
{
for(int j=;j<;j++)
{
c[i]= (c[i] + (ll)f[j]*a[j][i])%Mod ;
}
}
memcpy(f,c,sizeof(c));
}
void mulself(int a[][])
{
int c[][];
memset(c,,sizeof(c));
for(int i=;i<;i++)
{
for(int j=;j<;j++)
{
for(int k =;k<;k++)
{
c[i][j] = (c[i][j] + (ll) a[i][k]*a[k][j])%Mod;
}
}
}
memcpy(a,c,sizeof(c));
}
int main()
{
int n;
while(scanf("%d",&n)!=EOF)
{
n--;
int f[]={,};
int a[][]={{,},{,}};
while(n)
{
if(n&)mul(f,a);
mulself(a);
n>>=;
}
cout << f[]<<endl;
}
}
Weapons
题意:给你一个y,n,k;求出所有(x+y)|k且(x>0,y>0)(x+y<=n)
按照升序输出所有的x
代码;
#include <iostream>
#include <bits/stdc++.h> using namespace std;
typedef long long ll;
int main()
{
int y,n,k,i;
scanf("%d %d %d",&y,&k,&n);
for(i=(y/k+)*k;i<=n;i+=k)
{
printf("%d ",i-y);
}
if((y/k+)*k>n)
{
printf("-1");
}
return ;
}
n诺挑战赛5题解的更多相关文章
- Wannafly挑战赛29题解
这套题目非常有意思啊23333--话说为啥没有上条先生的呢-- 传送门 \(A\) 御坂美琴 蠢了--首先先判总共加起来等不等于\(n\),不是的话就不行 然后dfs记录\(n\)不断分下去能分成哪些 ...
- Wannafly挑战赛26题解
为啥混进了几道不是魔禁的题--出题人太不敬业了-- 传送门 \(A\) 御坂网络 为啥没有番外个体和整体意志呢 暴力模拟就好了,这个要是都打错我干脆滚回去学文化课算了 //minamoto #incl ...
- PTA2021 跨年挑战赛部分题解
7-1 压岁钱 不用说 #include<bits/stdc++.h> using namespace std; typedef long long ll; const int maxn ...
- Wannafly挑战赛21A
题目链接 Wannafly挑战赛21A 题解 代码 #include <cstdio> #include <cmath> #define MAX 1000005 #define ...
- Test传送门(更新中)
一.Codeforces传送门: Avito Code Challenge 2018 题解传送门 Codeforces Round #485 (Div. 2) 题解传送门 二.hihocode ...
- cf-1230C Anadi and Domino
题目链接:http://codeforces.com/contest/1230/problem/C 题意: 有21 个多米诺骨牌,给定一个无向图(无自环,无重边),一条边上可以放一个多米诺骨牌.如果两 ...
- Wannafly 挑战赛 19 参考题解
这一次的 Wannafly 挑战赛题目是我出的,除了第一题,剩余的题目好像对大部分算法竞赛者来说好像都不是特别友好,但是个人感觉题目质量还是过得去的,下面是题目链接以及题解. [题目链接] Wanna ...
- 题解 P3693 【琪露诺的冰雪小屋】
知识点: 模拟 , 信仰 原题面 大 型 车 万 众 自 裁 现 场 分析题意: 操作: ICE_BARRAGE R C D S R:行 , C:列, D:方向 , S:强度 在(R,C) 向 D 射 ...
- Wannafly挑战赛13 zzf的好矩阵 题解 答案解释
Wannafly挑战赛13 zzf的好矩阵 题解 文章目录 Wannafly挑战赛13 zzf的好矩阵 题解 分析 结论1 结论2 结论3 C数组对应带子说明 空白长度论述 后续黑色长度论述 能&qu ...
随机推荐
- 单点登录系统(SSO)详细设计说明书(上篇)
1.引言 1.1编写目的 为了单点登录系统(SSO系统)的可行性,完整性,并能按照预期的设想实现该系统,特编写需求说明书. 同时,说明书也发挥与策划和设计人员更好地沟通的作用. 1.2 ...
- (CVE-2017-7269 ) IIS6.0实现远程控制
简介 IIS 6.0默认不开启WebDAV,一旦开启了WebDAV,安装了IIS6.0的服务器将可能受到该漏洞的威胁 利用条件 Windows 2003 R2开启WebDAV服务的IIS6.0 环境搭 ...
- 【ARM-Linux开发】如何使用opkg在RicoBoard上在线安装软件包
类似于debian的apt-get,Redhat的yum类似,嵌入式Linux平台可以使用opkg实现在线安装软件包的功能,在我们提供的matrix文件系统中,已经包含了opkg工具,但是还没有配置一 ...
- cent8安装postgres
postgres是一款免费.开源的对象型关系数据库,其在cent8的安装方式与cent7的不太一样,特此记录. 步骤: 1 安装postgres server dnf install postgres ...
- Django与JS交互的示例代码-django js 获取 python 字典-Django 前后台的数据传递
Django与JS交互的示例代码 Django 前后台的数据传递 https://www.cnblogs.com/xibuhaohao/p/10192052.html 应用一:有时候我们想把一个 li ...
- Longest Line of Consecutive One in Matrix
Given a 01 matrix, find the longest line of consecutive 1 in the matrix. The line could be horizonta ...
- JVM —— 类文件结构(下)
简介 Java虚拟机的指令由一个字节长度的.代表着某种特定操作含义的操作码(opcode)以及跟随其后的零至多个代表此操作所需参数的操作数(operand)所构成 虚拟机中许多指令并不包含操作数.只有 ...
- double check
http://www.cnblogs.com/limingluzhu/p/5156659.html http://blog.csdn.net/chenchaofuck1/article/details ...
- element-ui 合并单元格的方法
arraySpanMethod({ row, column, rowIndex, columnIndex }) { // 只合并区域位置 //columnIndex 横的第一列 ...
- react-router 5.0 的鉴权
react-router 5.0 的鉴权 当我们使用react-router 控制页面的路由时候,有些页面,是需要登录才能访问,有些不需要登录就可以访问,还有些页面,是根据用户的权限来限制访问的. 如 ...