国庆集训 || 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(实际) 期望得分:. ...
随机推荐
- Appium + junit 的简单实例
import static junit.framework.Assert.assertTrue; import static org.junit.Assert.*; import org.junit. ...
- Bundle Adjustment光束平差法概述
http://blog.csdn.net/abcjennifer/article/details/7588865 http://blog.csdn.net/ximenchuixuezijin/arti ...
- OPENGL2_基本框架
一些概念 HDC:设备描述句柄(窗口着色描述表句柄),是WINDOWS的一种数据类型,HDC定义的变量指向一块内存,这块内存用来描述一个设备的相关的内容(设备描述表). HGLRC:OpenGL渲染环 ...
- Codevs 1293 送给圣诞夜的极光
1293 送给圣诞夜的极光 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题解 查看运行结果 题目描述 Description 圣诞老人回到了北极圣 ...
- P4363 [九省联考2018]一双木棋chess(对抗搜索+记忆化搜索)
传送门 这对抗搜索是个啥玩意儿…… 首先可以发现每一行的棋子数都不小于下一行,且局面可由每一行的棋子数唯一表示,那么用一个m+1进制数来表示当前局面,用longlong存,开map记忆化搜索 然后时间 ...
- CentOS 利用 yum 安装卸载软件常用命令
一.yum安装和卸载软件 有个前提是yum安装的软件包都是rpm格式的. 安装的命令是,yum install ~,yum会查询数据库,有无这一软件包,如果有,则检查其依赖冲突关系,如果没有依赖冲突, ...
- Alcatraz -- 一个神奇的管理插件的Xcode插件
Install Paste this into your terminal: curl -fsSL https://raw.githubusercontent.com/supermarin/Alcat ...
- UIWebView 使用
UIWebView是iOS sdk中一个最常用的控件.是内置的浏览器控件,我们可以用它来浏览网页.打开文档等等.这篇文章我将使用这个控件,做一个简易的浏览器.如下图: 我们创建一个Window-bas ...
- B. Mancala (Codeforces Round #478 (Div. 2))
#include <bits/stdc++.h> using namespace std; ; typedef long long ll; ll a[maxn]; ll b[maxn]; ...
- python如何永久添加模块搜索路径
win10系统 依次点击:控制面板\系统和安全\系统\高级系统设置\环境变量 找不到的话,直接在设置中搜索 环境变量 也一样 此时上面是用户变量 下面是系统变量 在系统变量中找到PYTHO ...