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. 【c# 学习笔记】封装

    封装 指的是把类内部的数据隐藏起来,不让对象实例直接对其操作.c#中提供了属性机制来对类内部的状态进行操作. 在c#中,封装可以通过Public.Private.Protected和Internal等 ...

  2. 图形学入门(3)——区域填充算法(region filling)

    继续图形学之旅,我们已经解决了如何画线和画圆的问题,接下来要解决的是,如何往一个区域内填充颜色?对一个像素填充颜色只需调用SetPixel之类的函数就行了,所以这个问题其实就是:如何找到一个区域内的所 ...

  3. 微信jsapi开发应用实例并记录下错误信息

    虽然大家已经有实例,但还是要根据自己的项目更改 在这里需要注意的几点 也是常常报错的 1.页面必须是UTF8(已经json不认gbk,所以会提醒 -1调用支付JSAPI缺少参数APPID 这是编码引起 ...

  4. hupu面试

    1.mybatis更新一条数据时,如果某字段为空,则不更新它,使用默认值? <update id="updateProduct" parameterType="Pr ...

  5. Nginx+PHP(FastCGI)高性能服务器加载redis+memcache模块

    1)Nginx+FastCGI安装配置: yum install  openssl openssl-devel pcre-devel pcre zlib zlib-devel –y #下载Nginx源 ...

  6. python字典推导式 - python基础入门(17)

    在昨天的文章中,我们介绍了关于python列表推导式 的使用,字典推导式使用方法其实也类似,也是通过循环和条件判断表达式配合使用,不同的是字典推导式返回值是一个字典,所以整个表达式需要写在{}内部. ...

  7. docker(学习笔记)

    # 1. Docker介绍## 1.1 什么是容器?## 1.2 容器的前世今生FreeBASE jail ------> Linux vserverchroot ----> 完整的根文件 ...

  8. mongdb学习

    1.启动mongdb 服务(注启动之前把data 文件夹清空) 2.开发和jpa一样 只是extendMongoRepository 3.实体类只有id注解,属性全为String

  9. [CF369E]Valera and Queries_离线_树状数组

    Valera and Queries 题目链接:codeforces.com/problemset/problem/369/E 数据范围:略. 题解: 这种题,就单独考虑一次询问即可. 我们发现,包括 ...

  10. Oracle数据库 SET ECHO [ON|OFF]

    说明 -- 运行.sql文件时,显示.sql文件中的语句 SET ECHO ON -- 运行.sql文件时,不显示.sql文件中的语句 SET ECHO OFF Oracle 11g Release ...