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题解的更多相关文章

  1. Wannafly挑战赛29题解

    这套题目非常有意思啊23333--话说为啥没有上条先生的呢-- 传送门 \(A\) 御坂美琴 蠢了--首先先判总共加起来等不等于\(n\),不是的话就不行 然后dfs记录\(n\)不断分下去能分成哪些 ...

  2. Wannafly挑战赛26题解

    为啥混进了几道不是魔禁的题--出题人太不敬业了-- 传送门 \(A\) 御坂网络 为啥没有番外个体和整体意志呢 暴力模拟就好了,这个要是都打错我干脆滚回去学文化课算了 //minamoto #incl ...

  3. PTA2021 跨年挑战赛部分题解

    7-1 压岁钱 不用说 #include<bits/stdc++.h> using namespace std; typedef long long ll; const int maxn ...

  4. Wannafly挑战赛21A

    题目链接 Wannafly挑战赛21A 题解 代码 #include <cstdio> #include <cmath> #define MAX 1000005 #define ...

  5. Test传送门(更新中)

    一.Codeforces传送门: Avito Code Challenge 2018 题解传送门 Codeforces Round #485 (Div. 2)     题解传送门 二.hihocode ...

  6. cf-1230C Anadi and Domino

    题目链接:http://codeforces.com/contest/1230/problem/C 题意: 有21 个多米诺骨牌,给定一个无向图(无自环,无重边),一条边上可以放一个多米诺骨牌.如果两 ...

  7. Wannafly 挑战赛 19 参考题解

    这一次的 Wannafly 挑战赛题目是我出的,除了第一题,剩余的题目好像对大部分算法竞赛者来说好像都不是特别友好,但是个人感觉题目质量还是过得去的,下面是题目链接以及题解. [题目链接] Wanna ...

  8. 题解 P3693 【琪露诺的冰雪小屋】

    知识点: 模拟 , 信仰 原题面 大 型 车 万 众 自 裁 现 场 分析题意: 操作: ICE_BARRAGE R C D S R:行 , C:列, D:方向 , S:强度 在(R,C) 向 D 射 ...

  9. Wannafly挑战赛13 zzf的好矩阵 题解 答案解释

    Wannafly挑战赛13 zzf的好矩阵 题解 文章目录 Wannafly挑战赛13 zzf的好矩阵 题解 分析 结论1 结论2 结论3 C数组对应带子说明 空白长度论述 后续黑色长度论述 能&qu ...

随机推荐

  1. from表单上提交的数据都去了哪里呢?

    from表单上提交的数据都去了哪里呢? 一个简单的from案例如下: <form> 姓名:<br> <input type="text" name=& ...

  2. Vue 中 css scoped 样式穿透 ( stylus[>>>] / sass / less[/deep/] )

    scoped看起来很好用,当时在Vue项目中,当我们引入第三方组件库时(如使用element-ui),需要在局部组件中修改第三方组件库样式,而又不想去除scoped属性造成组件之间的样式覆盖.这时我们 ...

  3. Ext.jsTree 向子节点添加叶子节点

    // 定义搜索节点树结构Store const nodeStore = Ext.create('Ext.data.TreeStore', { autoLoad : true, id : 'nodeSt ...

  4. 【计算机视觉】OpenCV读取视频获取时间戳等信息(PS:经测试并不是时间戳,与FFMPEG时间戳不一样)

    OpenCV中通过VideoCaptrue类对视频进行读取操作以及调用摄像头,下面是该类的API. 1.VideoCapture类的构造函数: C++: VideoCapture::VideoCapt ...

  5. 快速配置和切换http和https

    <link href="//maze.gxrc.com/css/global.css" rel="stylesheet" type="text/ ...

  6. IntelliJ IDEA 简单设置

    1.在idea中添加try/catch的快捷键 ctrl+alt+t 2.主题修改 选择菜单栏“File--settings--apperance--theme”,主题选择Darcula: 3.代码字 ...

  7. 解决 yolov3: Demo needs OpenCV for webcam images

    默认情况下yolo的Makefile文件有个配置OPENCV=0,你需要将它改成 0 ,然后重新make 编译make 编译就会启用 opencv,此时你需要在你的电脑上安装opencv 才可以 修改 ...

  8. vue element-ui typescript tree报错 === Property 'getCheckedNodes' does not exist on type 'Element | Element[] | Vue | Vue[]'.

    import { Tree } from 'element-ui' const ref = <Tree>this.$refs.tree ref.getCheckedNodes()

  9. [转帖]Linux 中的零拷贝技术,第 1 部分

    Linux 中的零拷贝技术,第 1 部分 https://www.ibm.com/developerworks/cn/linux/l-cn-zerocopy1/index.html   引言 传统的 ...

  10. 【JVM基础】JVM垃圾回收机制算法