链接:https://www.nowcoder.com/acm/contest/205#question

一场题面非常 有趣 但是题目非常 不友好的比赛

QAQ

L.数论之神   思维(?)

题意:求对给定的n,中有多少个不同的数,并且这些不同的数中第k大的是多少

思路:打表找了找规律(感觉自己天天都在找规律。。),对于不同的n,不同的结果中,≤sqrt(n)的一定都有,剩下的直接除就ok了

整数除法:https://blog.csdn.net/qq_39792342/article/details/82783100

艾玛说不明白话,还是适合直接找规律(哭

#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std;
typedef long long LL;
int main()
{
int T;
scanf("%d", &T);
while(T--)
{
LL n, k, sq, cnt;
scanf("%lld%lld", &n, &k);
sq = (LL)sqrt(double(n));
if(n < sq*(sq+)) cnt = sq+sq-;
else cnt = sq+sq;
printf("%lld ", cnt);
if(k <= cnt-sq) printf("%lld\n", n/k);
else printf("%lld\n", cnt+-k);
}
}

G.贵族用户   暴力嘤嘤嘤

勾起了我一年前玩奇迹暖暖养女儿的回忆QAQ (女儿你还好吗~~

题意:花x元获得10x个钻石,ai个钻石可以使得原价为di的服装价格变为,要买ci件价格为di的衣服,问最少氪多少钱

思路:暴力枚举得到每一档的打折,求最少的钱数

注意1.可能不氪金反而更便宜

2.享受pi折扣的时候,要保证氪的钻石>=a[i],因此所需的钻石是max(钻石, a[i])

3.向上取整的时候可以,比如除以100然后向上取整 -> (x+99)/100

4.好坑啊好坑啊

#include <iostream>
#include <stdio.h>
#include <string.h>
#include <math.h>
using namespace std;
int c[], d[], a[], p[];
int main()
{
int T;
scanf("%d", &T);
while(T--)
{
int m, k;
scanf("%d%d", &m, &k);
for(int i = ; i < m; i++)
scanf("%d%d", &a[i], &p[i]);
int sum = ;
for(int i = ; i < k; i++)
scanf("%d%d", &c[i], &d[i]), sum += c[i]*d[i];
int ans = , ans_novip = sum;
for(int i = ; i < m; i++)
{
int sum_vip = ;
for(int j = ; j < k; j++)
sum_vip += (d[j] * (-p[i]) + ) / * c[j];
sum_vip = min(max(sum_vip, a[i]), ans_novip);
ans = min(ans, sum_vip);
}
printf("%d\n", (ans+)/);
}
return ;
}

B.电音之王   快速乘操作666

题意:已知a0,a1,m0,m1,c,定义an=m0an-1+m1an-2+c (n≥ 2)

,(保证

思路:直接暴力是O(10^8)的,又有模运算,so 优化叭

太高级了。。。64位模,板子收下了orz

#include <iostream>
#include <cstdio>
#include <cassert>
#include <cmath>
using i64 = long long;
using u64 = unsigned long long;
using u128 = __uint128_t;
struct Mod64
{
Mod64() : n_() {}
Mod64(u64 n) : n_(init(n)) {}
static u64 modulus() { return mod; }
static u64 init(u64 w) { return reduce(u128(w) * r2); }
static void set_mod(u64 m)
{
mod = m;
assert(mod & );
inv = m;
for (int i = ; i < ; ++i)
inv *= - inv * m;
r2 = -u128(m) % m;
}
static u64 reduce(u128 x)
{
u64 y = u64(x >> ) - u64((u128(u64(x) * inv) * mod) >> );
return i64(y) < ? y + mod : y;
}
Mod64 &operator+=(Mod64 rhs)
{
n_ += rhs.n_ - mod;
if (i64(n_) < )
n_ += mod;
return *this;
}
Mod64 operator+(Mod64 rhs) const { return Mod64(*this) += rhs; }
Mod64 &operator*=(Mod64 rhs)
{
n_ = reduce(u128(n_) * rhs.n_);
return *this;
}
Mod64 operator*(Mod64 rhs) const { return Mod64(*this) *= rhs; }
u64 get() const { return reduce(n_); }
static u64 mod, inv, r2;
u64 n_;
};
u64 Mod64::mod, Mod64::inv, Mod64::r2; inline u64 mod128_64_small(u128 a, u64 b)
{
u64 q, r;
__asm__(
"divq\t%4"
: "=a"(q), "=d"(r)
: ""(u64(a)), ""(u64(a >> )), "rm"(b));
return r;
} u64 fact_mod_fast(int N, u64 mod)
{
Mod64::set_mod(mod);
Mod64 ret = Mod64(), one = ret, t = one;
for (int i = ; i <= N; ++i)
{
ret *= t;
t += one;
}
return ret.get();
}
int main()
{
int T;
scanf("%d", &T);
while(T--)
{
u64 a0_, a1_, m0_, m1_, c_, M, k;
scanf("%llu%llu%llu%llu%llu%llu%llu", &a0_, &a1_, &m0_, &m1_, &c_, &M, &k);
Mod64 :: set_mod(M);
Mod64 a0 = Mod64(a0_);
Mod64 a1 = Mod64(a1_);
Mod64 m0 = Mod64(m0_);
Mod64 m1 = Mod64(m1_);
Mod64 c = Mod64(c_);
Mod64 ans = a0*a1;
Mod64 a2;
for(int i = ; i <= k; i++)
{
a2 = m0*a1+m1*a0+c;
ans = ans * a2;
a0 = a1;
a1 = a2;
}
printf("%llu\n", ans.get());
}
}

快速乘的模板↓

LL multi(LL x,LL y,LL mod)
{
LL tmp = (x * y - (LL)((long double) x / mod * y + 1.0e-8) * mod);
return tmp < ? tmp+mod : tmp;//x*y%mod
}

国庆集训 || Wannafly Day4的更多相关文章

  1. 牛客国庆集训派对Day4.B.异或求和(按位统计)

    题目链接 刷牛客一战到底做到的,感觉还挺有趣... \(Description\) 求给定\(n\)及序列\(A_i\),求\[\sum_{i\lt j\lt k}(A_i\oplus A_j)(A_ ...

  2. 牛客国庆集训派对Day4 Solution

    A    深度学习 puts(n) #include <bits/stdc++.h> using namespace std; int main() { double n; while ( ...

  3. 牛客国庆集训派对Day4 J-寻找复读机

    链接:https://www.nowcoder.com/acm/contest/204/J 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 1048576K,其他语言20 ...

  4. 牛客国庆集训派对Day4 I-连通块计数(思维,组合数学)

    链接:https://www.nowcoder.com/acm/contest/204/I 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 1048576K,其他语言20 ...

  5. 牛客网国庆集训派对Day4题目 2018年

    链接:https://www.nowcoder.com/acm/contest/204/A来源:牛客网 深度学习 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 1048576K,其他 ...

  6. 国庆集训 || Wannafly Day1

    网址:https://www.nowcoder.com/acm/contest/201#question A.签到 手速石头剪刀布 #include <cstdio> #include & ...

  7. 2018 牛客国庆集训派对Day4 - H 树链博弈

    链接:https://ac.nowcoder.com/acm/contest/204/H来源:牛客网 题目描述 给定一棵 n 个点的树,其中 1 号结点是根,每个结点要么是黑色要么是白色 现在小 Bo ...

  8. 线性基求交(2019牛客国庆集训派对day4)

    题意:https://ac.nowcoder.com/acm/contest/1109/C 问你有几个x满足A,B集合都能XOR出x. 思路: 就是线性基求交后,有几个基就是2^几次方. #defin ...

  9. 8.7 正睿暑期集训营 Day4

    目录 2018.8.7 正睿暑期集训营 Day4 A 世界杯(贪心) B 数组(线段树) C 淘汰赛 考试代码 A B C 2018.8.7 正睿暑期集训营 Day4 时间:5h(实际) 期望得分:. ...

随机推荐

  1. 微信小程序 设置宽度是100%,然后图片能成为正方形的方法。小程序按屏幕比例的正方形

    1.在全局app.js中获取设备的宽度 globalData: { userInfo: null, sysWidth:wx.getSystemInfoSync().windowWidth, //图片宽 ...

  2. [HNOI2010] 矩阵 matrix

    标签:dfs+剪枝. 题解: 这道题看着就像一道dfs题目,没有什么算法可以用来算这个东西,于是想想暴搜. 如果我们确定因为是2*2的子矩阵的和,如果确定了其中三个,那么就可以确定第四个,发现如果确定 ...

  3. windows 自定义批处理BAT/CMD启动Redis等软件

    需求:每次开机都需要启动Redis.QQ.IDEA等等好几个软件,手动点击比较无趣.浪费劳动力,所以通过自定义bat文件,进行批量启动. 唯独启动到Redis时出现问题,下面是在bat里运行的路径: ...

  4. sed 删除指定行

    参考:http://blog.sina.com.cn/s/blog_4ba5b45e0102e7l2.html

  5. 「开源」SpringCloud+vue搭建的商城项目

    最近在研究SpringCloud,看到一个基于SpringCloud+vue搭建的模拟商城项目.用来辅助学习SpringCloud企业级开发还是很有帮助的.强烈推荐!! 源码地址在最后. spring ...

  6. 51Nod 1126 求递推序列的第N项(矩阵快速幂)

    #include <iostream> #include <algorithm> #include <cmath> #define MOD 7 #define N ...

  7. Vue初始化

    Vue上面的函数怎么来的 vue的打包路径 在web中使用的vue打包路径: npm run build 打包生成vue.js 下面是依次引入: src/platforms/web/entry-run ...

  8. matplotlib 知识点13:绘制散点图(scatter函数精讲)

    散点图是指在回归分析中,数据点在直角坐标系平面上的分布图,散点图表示因变量随自变量而变化的大致趋势,据此可以选择合适的函数对数据点进行拟合. 用两组数据构成多个坐标点,考察坐标点的分布,判断两变量之间 ...

  9. 使用request实现手工输入验证码登录

    我们的目标网站是这个http://awehome.com.cn,登录页面是这个http://awehome.com.cn/tenant/login import requests import jso ...

  10. C# 连接 Oracle,读取Blob字段数据,存到文件中去,包括pdf等等

    代码如下,记得引入Oracle的dll using System; using System.Collections.Generic; using System.ComponentModel; usi ...