A    璀璨光滑

留坑。

B    电音之王

蒙特马利大数乘模运算

 #include <bits/stdc++.h>
using namespace std; typedef long long ll;
typedef unsigned long long u64;
typedef __int128_t i128;
typedef __uint128_t u128; struct Mod64 {
Mod64() :n_() {}
Mod64(u64 n) :n_(init(n)) {}
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 ll(y)< ? y + mod : y;
}
Mod64& operator += (Mod64 rhs) { n_ += rhs.n_ - mod; if (ll(n_)<) n_ += mod; return *this; }
Mod64 operator + (Mod64 rhs) const { return Mod64(*this) += rhs; }
Mod64& operator -= (Mod64 rhs) { n_ -= rhs.n_; if (ll(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; int t, k;
u64 A0, A1, M0, M1, C, M; void Run()
{
scanf("%d", &t);
while (t--)
{
scanf("%llu%llu%llu%llu%llu%llu%d", &A0, &A1, &M0, &M1, &C, &M, &k);
Mod64::set_mod(M);
Mod64 a0(A0), a1(A1), m0(M0), m1(M1), c(C), ans(), a2();
ans *= a0; ans *= a1;
for (int i = ; i <= k; ++i)
{
a2 = a1;
a1 = m0 * a1 + m1 * a0 + c;
a0 = a2;
ans *= a1;
}
printf("%llu\n", ans.get());
}
} int main()
{
#ifdef LOCAL
freopen("Test.in", "r", stdin);
#endif Run();
return ;
}

C    萌新拆塔

留坑。

D    奇迹暖婊

留坑。

E    风花雪月

留坑。

F    双倍掉率

留坑。

G    贵族用户

枚举VIP等级,注意精度问题 不要用(1-p * 0.01) 用 (100 - p) * 1.0 / 100

 #include<bits/stdc++.h>

 using namespace std;

 const int maxn = 1e2 + ;

 int m, k;
int a[maxn], p[maxn], c[maxn], d[maxn]; int main()
{
int t;
scanf("%d", &t);
while(t--)
{
scanf("%d %d", &m, &k);
for(int i = ; i <= m; ++i) scanf("%d %d", a + i, p + i);
for(int i = ; i <= k; ++i) scanf("%d %d", c + i, d + i);
int ans = 0x3f3f3f3f;
//for(int i = 1; i <= k; ++i) ans += c[i] * d[i];
for(int i = ; i <= m; ++i)
{
int res = ;
for(int j = ; j <= k; ++j)
{
int tmp = (int)ceil(d[j] * (100.0 - p[i]) / 100.0);
res += tmp * c[j];
}
if(res < a[i]) res = a[i];
ans = min(ans, res);
}
ans = (int)ceil(ans * 0.1);
printf("%d\n", ans);
}
return ;
}

H    我不爱她

留坑。

I    人渣本愿

留坑。

J    友谊巨轮

用线段树维护每个人对其他人的聊天记录,然后取max上去,但是开1e5棵线段树肯定空间爆炸,考虑动态开点,每次最多开logn个结点

 #include <bits/stdc++.h>
using namespace std; #define N 100010
#define ll long long int t, n, m, k;
int root[N], res; struct SEG
{
#define M N * 35
int cnt, lson[M], rson[M];
struct node
{
int tm, pos;
ll Max;
bool operator < (const node &r) const
{
return Max == r.Max ? tm < r.tm : Max < r.Max;
}
}a[M]; void pushup(int id)
{
a[id] = max(a[lson[id]], a[rson[id]]);
} void update(int &root, int l, int r, ll val, int tm, int pos)
{
if (!root)
{
root = ++cnt;
lson[root] = rson[root] = ;
a[root].Max = a[root].tm = a[root].pos = ;
}
if (l == r)
{
a[root].Max += val;
a[root].tm = max(a[root].tm, tm);
a[root].pos = pos;
return;
}
int mid = (l + r) >> ;
if (pos <= mid) update(lson[root], l, mid, val, tm, pos);
else update(rson[root], mid + , r, val, tm, pos);
pushup(root);
}
}segtree; void Init()
{
segtree.cnt = ;
memset(root, , sizeof root);
res = ;
} struct OP
{
int a, b, c, tm;
void scan(int tm)
{
this->tm = tm;
scanf("%d%d%d", &a, &b, &c);
}
}op[N]; void update(int a, int b, int c, int tm)
{
int bef = segtree.a[root[a]].pos;
segtree.update(root[a], , n, c, tm, b);
int now = segtree.a[root[a]].pos;
if (bef == now) return;
if (bef)
{
if (segtree.a[root[bef]].pos == a) ++res;
else --res;
}
if (now)
{
if (segtree.a[root[now]].pos == a) --res;
else ++res;
} } void Run()
{
segtree.a[].tm = ; // 防止取max操作时误把空节点pushup上去
scanf("%d", &t);
while (t--)
{
Init();
scanf("%d%d%d", &n, &k, &m);
for (int i = ; i <= k; ++i)
{
op[i].scan(i);
update(op[i].a, op[i].b, op[i].c, i);
update(op[i].b, op[i].a, op[i].c, i);
if (i > m)
{
update(op[i - m].a, op[i - m].b, -op[i - m].c, i - m);
update(op[i - m].b, op[i - m].a, -op[i - m].c, i - m);
}
printf("%d\n", res);
}
}
} int main()
{
#ifdef LOCAL
freopen("Test.in", "r", stdin);
#endif Run();
return ;
}

K    最后战役

留坑。

L    数论之神

两个规律,在代码中。

 #include <bits/stdc++.h>
using namespace std; #define ll long long int T;
ll n, k; int main()
{
scanf("%d", &T);
while (T--)
{
scanf("%lld%lld", &n, &k);
ll t = (ll)sqrt(n);
// cout << t << endl;
ll num = t * (t + ) <= n ? * t : * t - ;
k = num - k + ;
ll K = k <= t ? k : n / (num - k + );
printf("%lld %lld\n", num, K);
}
return ;
}

牛客国庆集训派对Day5 Solution的更多相关文章

  1. 2019牛客国庆集训派对day5

    2019牛客国庆集训派对day5 I.Strange Prime 题意 \(P=1e10+19\),求\(\sum x[i] mod P = 0\)的方案数,其中\(0 \leq x[i] < ...

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

    A    矩阵乘法 思路: 1° 牛客机器太快了,暴力能过. #include <bits/stdc++.h> using namespace std; #define N 5000 in ...

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

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

  4. 牛客国庆集训派对Day5 数论之神

    题目描述 终于活成了自己讨厌的样子. 这是她们都还没长大的时候发生的故事.那个时候,栗子米也不需要为了所谓的爱情苦恼. 她们可以在夏日的午后,花大把的时间去研究生活中一些琐碎而有趣的事情,比如数论. ...

  5. 牛客国庆集训派对Day1 Solution

    A    Tobaku Mokushiroku Kaiji 水. #include <bits/stdc++.h> using namespace std; ], b[]; void Ru ...

  6. 牛客国庆集训派对Day3 Solution

    A    Knight 留坑. B    Tree 思路:两次树形DP,但是要考虑0没有逆元 可以用前缀后缀做 #include <bits/stdc++.h> using namespa ...

  7. 牛客国庆集训派对Day6 Solution

    A    Birthday 思路:设置一个源点,一个汇点,每次对$源点对a_i, b_i , a_i 对 b_i 连一条流为1,费用为0的边$ 每个点都再连一条 1, 3, 5, 7, ....的边到 ...

  8. 牛客国庆集训派对Day7 Solution

    A    Relic Discovery 水. #include <bits/stdc++.h> using namespace std; int t, n; int main() { s ...

  9. 牛客国庆集训派对Day5 A.璀璨光滑

    首先我们可以确认 1的值一定是0 题目要求的是 有边的两个点所代表的值二进制有一位不同(即有边相连的两个值二进制所包含的1的个数相差为1) 所以我们通过他给你的图进行BFS 把原图分为一圈一圈的 并且 ...

随机推荐

  1. ios 6以后,UILabel全属性

    一.初始化 1 UILabel *myLabel = [[UILabel alloc] initWithFrame:CGRectMake(40, 40, 120, 44)]; 2       3 [s ...

  2. testNG框架提示:Cannot find class in classpath: NewTest

    selenium+Java的testNG运行时,报如下错误: org.testng.TestNGException: Cannot find class in classpath: NewTest a ...

  3. ionic函数 官方使用帮助

    项目里 lib/js/ionic.bundle.js 里很多ionic的函数,里面还带了很多使用示例,认真看一下肯定会对使用ionic有很多帮助啊!! 例如:$http

  4. java日志之slf4j与logback简单使用

    最近在开发遇到日志是使用slf4j与logback.xml的配置,所以就记录下来了. 1.导入这几个jar包: Logback 分为三个模块:logback-core,logback-classic, ...

  5. PyQt4消息窗口

    默认情况下,如果我们单击了窗口标题栏上的X标记,窗口就会被关闭.但是有些时候我们想要改变这一默认行为.比如,我们正在编辑的文件内容发生了变化,这时若单击X标记关闭窗口,编辑器就应当但出确认窗口. #! ...

  6. 《转》python学习(9)字典

    转自 http://www.cnblogs.com/BeginMan/p/3156960.html 一.映射类型 我理解中的映射类型是:键值对的关系,键(key)映射值(value),且它们是一对多的 ...

  7. 有道云笔记同步IT笔试面试资源

    有道云笔记同步资源 放在手机上ipad或者电脑上看..特别方便...精心整理..暂时只有c++的..希望大家喜欢 暂时只扒了一些c++的..java的随后扒 主要都是取自<程序员面试笔试宝典&g ...

  8. RabbitMQ的安装和使用Python连接RabbitMQ

    绪论 这里的环境使用的是Mac OS X系统,所有的配置和使用都是基于Mac OS X 和Python 2.7 以及对应的pika库的. RabbitMQ的安装和配置 安装部分 #brew insta ...

  9. python的内存管理与垃圾回收机制学习

    一.python内存申请: 1.python的内存管理分为六层:最底的两层有OS控制.第三层是调用C的malloc和free等进行内存控制.第四层第五层是python的内存池.最上层使我们接触的直接对 ...

  10. OC开发_代码片段——使用Xib自定义tableViewCell

    一.实现步骤 1.新建一个XIB文件:描述cell——tableCell.xib 2.新建UITableViewCell的子类,也就是cell文件:封装XIB内部的所有东西——TestCell.m \ ...