国庆集训 || 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(实际) 期望得分:. ...
 
随机推荐
- Flink window机制
			
此文已由作者岳猛授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 问题 window是解决流计算中的什么问题? 怎么划分window?有哪几种window?window与时间属 ...
 - Luogu P1074靶形数独【搜索/剪枝】By cellur925
			
题目传送门 显然是一个搜索.但是开始没有任何的剪枝,暴力从\((1,1)\)点开始搜索,很自然地T了6个点. #include<cstdio> #include<algorithm& ...
 - Validation(2)
			
站在巨人的肩膀上 spring注解式参数校验 2016年06月15日 15:42:47 God_Ming 阅读数:57021 标签: springhibernatevalidator 更多 个人分类: ...
 - IDEA快捷的添加包名
			
Intellij IDEA使用(十四)—— 在IDEA中创建包(package)的问题 2018年02月24日 17:24:49 _云卷云舒_ 阅读数:6264 标签: intellij idea 更 ...
 - 后台管理系统·快速开发框架JSite
			
平台介绍 框架基于Maven构建,拆分成多个子模块,层次结构清晰.可用于所有Web应用,如企业后台管理系统.OA系统.CMS.CRM等. 框架本身集成了最新的 Flowable工作流引擎 https: ...
 - IMG 的alt和title的区别(转自 百度空间--路云的世界)
			
图片标签img中alt与title的区别 图片标签img中alt与title的区别 可能很多新手在做站内优化的时候,不明白图片标签img中alt与title的区别,今天为大家说一下其中的区别. 大家可 ...
 - [软件工程基础]2017.11.02 第六次 Scrum 会议
			
具体事项 燃尽图 每人工作内容 成员 已完成的工作 计划完成的工作 工作中遇到的困难 游心 #10 搭建可用的开发测试环境:#9 阅读分析 PhyLab 后端代码与文档:#8 掌握 Laravel 框 ...
 - Qt 进程和线程之二:启动线程
			
Qt提供了对线程的支持,这包括一组与平台无关的线程类.一个线程安全的发送事件的方式,以及跨线程的信号槽的关联.这些使得可以很容易地开发可移植的多线程Qt应用程序,可以充分利用多处理器的机器.多线程编程 ...
 - Gym - 101810C ACM International Collegiate Programming Contest (2018)
			
bryce1010模板 http://codeforces.com/gym/101810 #include <bits/stdc++.h> using namespace std; #de ...
 - Python开发 第02课 Python 数据类型
			
1.Python 变量类型 变量存储在内存中的值.这就意味着在创建变量时会在内存中开辟一个空间.基于变量的数据类型,解释器会分配指定内存,并决定什么数据可以被存储在内存中.因此,变量可以指定不同的数据 ...