国庆集训 || Wannafly Day4
链接: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的更多相关文章
- 牛客国庆集训派对Day4.B.异或求和(按位统计)
题目链接 刷牛客一战到底做到的,感觉还挺有趣... \(Description\) 求给定\(n\)及序列\(A_i\),求\[\sum_{i\lt j\lt k}(A_i\oplus A_j)(A_ ...
- 牛客国庆集训派对Day4 Solution
A 深度学习 puts(n) #include <bits/stdc++.h> using namespace std; int main() { double n; while ( ...
- 牛客国庆集训派对Day4 J-寻找复读机
链接:https://www.nowcoder.com/acm/contest/204/J 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 1048576K,其他语言20 ...
- 牛客国庆集训派对Day4 I-连通块计数(思维,组合数学)
链接:https://www.nowcoder.com/acm/contest/204/I 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 1048576K,其他语言20 ...
- 牛客网国庆集训派对Day4题目 2018年
链接:https://www.nowcoder.com/acm/contest/204/A来源:牛客网 深度学习 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 1048576K,其他 ...
- 国庆集训 || Wannafly Day1
网址:https://www.nowcoder.com/acm/contest/201#question A.签到 手速石头剪刀布 #include <cstdio> #include & ...
- 2018 牛客国庆集训派对Day4 - H 树链博弈
链接:https://ac.nowcoder.com/acm/contest/204/H来源:牛客网 题目描述 给定一棵 n 个点的树,其中 1 号结点是根,每个结点要么是黑色要么是白色 现在小 Bo ...
- 线性基求交(2019牛客国庆集训派对day4)
题意:https://ac.nowcoder.com/acm/contest/1109/C 问你有几个x满足A,B集合都能XOR出x. 思路: 就是线性基求交后,有几个基就是2^几次方. #defin ...
- 8.7 正睿暑期集训营 Day4
目录 2018.8.7 正睿暑期集训营 Day4 A 世界杯(贪心) B 数组(线段树) C 淘汰赛 考试代码 A B C 2018.8.7 正睿暑期集训营 Day4 时间:5h(实际) 期望得分:. ...
随机推荐
- iOS11 与 iPhone X适配的那些坑(持更中...)
目录 问题列表 1.适配iPhoneX 屏幕原则 2.适配过程一些常量的设置 3..iPhone X 上运行有黑色区域问题 4.iOS11导航栏适配 5.出现UIScrollview 漂移问题(基本都 ...
- 算法学习--Day7
今天多做一些杂题练习一下. 第一题: 题目描述 在情报传递过程中,为了防止情报被截获,往往需要对情报用一定的方式加密,简单的加密算法虽然不足以完全避免情报被破译,但仍然能防止情报被轻易的识别.我们给出 ...
- thinkphp5.0 cache数据缓存机制
use think\cache; public function index(){ //Cache::get('name')获取缓存,如果name值不存在则返回false: if (Cache::ge ...
- PHP在cli模式下传参说明
命令行下输入php -help会列出所有可用的参数,如下截图: -a 代表以交互式模式运行: -c 指定ph.ini -n 不使用任何php.ini配置 -d foo[=bar] 定义一个INI实体, ...
- Sublime Text 报“Pylinter could not automatically determined the path to lint.py
Pylinter could not automatically determined the path to lint.py. please provide one in the settings ...
- Maven聚合工程怎么变回普通的Maven工程
问题 Maven聚合工程的父工程的packaging是pom,如果我们将其改为jar,会立刻报错: Project build error: 'packaging' with value 'jar' ...
- Python-7-字典方法
clear 删除所有字典项 >>> d = {} >>> d['name'] = 'Gumby' >>> d['age'] = 42 >&g ...
- [題解]luogu_P1333瑞瑞的木棍(并查集/圖論)
是一道歐拉路的題竟然沒看出來...... 把每種顏色看成一個點,每根木棍看成一個邊,即相同顏色在圖中接好合併成了一個點, 問題轉化為了求是否存在歐拉路 如果用map會超時,所以可以用字典樹實現離散化/ ...
- [題解]luogu_P3205/BZOJ_1996 合唱隊
前言:基本上發題解的都是抄的題解所以 來源:題解 题目描述 为了在即将到来的晚会上有更好的演出效果,作为AAA合唱队负责人的小A需要将合唱队的人根据他们的身高排出一个队形.假定合唱队一共N个人,第i个 ...
- centOS6.5 usr/src/kernels下为空
用uname -r查看内核版本为 2.6.32-431.el6.x86_64 usr/src/kernels下为空 需要执行两个安装 yum install kernel-headers yum in ...