Problem A. Mischievous Problem Setter

签到.

 #include <bits/stdc++.h>
using namespace std; #define ll long long
#define N 100010
#define pii pair <int, int>
#define x first
#define y second
int t, n, m;
pii a[N]; int main()
{
scanf("%d", &t);
for (int kase = ; kase <= t; ++kase)
{
printf("Case %d: ", kase);
scanf("%d%d", &n, &m);
for (int i = ; i <= n; ++i) scanf("%d", &a[i].x);
for (int i = ; i <= n; ++i) scanf("%d", &a[i].y);
sort(a + , a + + n);
int res = ;
for (int i = ; i <= n; ++i)
{
if (a[i].y <= m)
{
++res;
m -= a[i].y;
}
else
break;
}
printf("%d\n", res);
}
return ;
}

Problem K. Mr. Panda and Kakin

题意:

RSA解密

思路:

注意到题目的本意是求$x^(2^{30} + 3) = c \pmod (n)$

$从根号处暴力破出p和q,然后求(2^{30} + 3)对 \phi(n) = (p - 1) \cdot (q - 1) 的逆$

$最后求幂即可,但是注意到大数模乘会爆,所以可以long \;double 或者用中国剩余定理$

 #include <bits/stdc++.h>
using namespace std; #define ll long long
int t;
ll p, q; ll qmod(ll base, ll n, ll MOD)
{
base %= MOD;
ll res = ;
while (n)
{
if (n & ) res = res * base % MOD;
base = base * base % MOD;
n >>= ;
}
return res;
} void get(ll n)
{
for (ll i = sqrt(n); i >= ; --i) if (n % i == )
{
p = i;
q = n / i;
return;
}
} ll exgcd(ll a, ll b, ll &x, ll &y)
{
if (a == && b == ) return -;
if (b == ) { x = , y = ; return a; }
ll d = exgcd(b, a % b, y, x);
y -= a / b * x;
return d;
} ll mod_reverse(ll a, ll n)
{
ll x, y;
ll d = exgcd(a, n, x, y);
if (d == ) return (x % n + n) % n;
else return -;
} int main()
{
ll n, c;
scanf("%d", &t);
for (int kase = ; kase <= t; ++kase)
{
printf("Case %d: ", kase);
scanf("%lld%lld", &n, &c);
get(n);
ll r = (p - ) * (q - );
ll u = mod_reverse(((1ll << ) + ), r);
ll a = qmod(c, u, p);
ll b = qmod(c, u, q);
b = (b - a + q) % q;
ll inv = qmod(p, q - , q);
ll res = b * inv % q;
res = (res * p % n + a) % n;
printf("%lld\n", res);
}
return ;
}

2018 China Collegiate Programming Contest Final (CCPC-Final 2018)的更多相关文章

  1. 2018 China Collegiate Programming Contest Final (CCPC-Final 2018)-K - Mr. Panda and Kakin-中国剩余定理+同余定理

    2018 China Collegiate Programming Contest Final (CCPC-Final 2018)-K - Mr. Panda and Kakin-中国剩余定理+同余定 ...

  2. 模拟赛小结:2018 China Collegiate Programming Contest Final (CCPC-Final 2018)

    比赛链接:传送门 跌跌撞撞6题摸银. 封榜后两题,把手上的题做完了还算舒服.就是罚时有点高. 开出了一道奇奇怪怪的题(K),然后ccpcf银应该比区域赛银要难吧,反正很开心qwq. Problem A ...

  3. 2018 China Collegiate Programming Contest Final (CCPC-Final 2018)(A B G I L)

    A:签到题,正常模拟即可. #include<bits/stdc++.h> using namespace std; ; struct node{ int id, time; }; nod ...

  4. 2016 China Collegiate Programming Contest Final

    2016 China Collegiate Programming Contest Final Table of Contents 2016 China Collegiate Programming ...

  5. The 2015 China Collegiate Programming Contest A. Secrete Master Plan hdu5540

    Secrete Master Plan Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/65535 K (Java/Othe ...

  6. The 2015 China Collegiate Programming Contest Game Rooms

    Game Rooms Time Limit: 4000/4000MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Others) Submi ...

  7. 2018 German Collegiate Programming Contest (GCPC 18)

    2018 German Collegiate Programming Contest (GCPC 18) Attack on Alpha-Zet 建树,求lca 代码: #include <al ...

  8. (寒假GYM开黑)2018 German Collegiate Programming Contest (GCPC 18)

    layout: post title: 2018 German Collegiate Programming Contest (GCPC 18) author: "luowentaoaa&q ...

  9. 2017 China Collegiate Programming Contest Final (CCPC 2017)

    题解右转队伍wiki https://acm.ecnu.edu.cn/wiki/index.php?title=2017_China_Collegiate_Programming_Contest_Fi ...

随机推荐

  1. GIS-ArcGIS 与 ThreeJs交互联动

    一.从GIS触发Three场景 MapFeatureLayer.on("click", function (evt) { graphicsLayerOfMouse.clear(); ...

  2. divmod()

    divmod() 接收两个数值,然后以元组的形式返回这两个数值的商和余数 In [1]: divmod(5, 2) Out[1]: (2, 1) In [2]: divmod(10, 7) Out[2 ...

  3. C++11新特性之九——function、bind以及lamda表达式总结

    本文是C++0x系列的第四篇,主要是内容是C++0x中新增的lambda表达式, function对象和bind机制.之所以把这三块放在一起讲,是因为这三块之间有着非常密切的关系,通过对比学习,加深对 ...

  4. PHP-Yii框架下提交表单form防止csrf攻击

    解决办法: 在form标签下,写入一个隐藏的input控件 <form id="form_submit" action="http://v2admin.doneve ...

  5. mysql增删改查基本语句

    mysql的增删改查属于基本操作,又被简称CRUD,其中删用的较少,毕竟这个功能给用户是是非常危险的,就是客户删除的数据也没有真正的删除,其中查询是十分常用的. 1 mysql数据库增加:create ...

  6. web基础----->模板引擎Velocity的使用(二)

    这里面是关于velocity的一些用法,比较基础的使用.愿你生命中有够多的云翳,来造成一个美丽的黄昏. velocity生成javaBean 一.定义一个简单的bean类 public class C ...

  7. Shell 将两个文件按列合并

    file1. 1 2 2 3 3 4 4 5 5 6 file2. a b b c c d d e e f 需要把file2的第二列合并到file1,使File1并成三列. 第一种方法:paste p ...

  8. Python 如何引入自定义模块

    Python 中如何引用自己创建的源文件(*.py)呢? 也就是所谓的模块. 假如,你有一个自定义的源文件,文件名:saySomething.py .里面有个函数,函数名:sayHello.如下图: ...

  9. Fluent Nhibernate Mapping for Sql Views

    Views are mapped the same way tables are mapped except that you should put Readonly() in the mapping ...

  10. Appium中长按按钮操作

    在一次项目中,appium要对某个按钮进行长按操作(大于2s),类似拍微信小视频,参考网上长按视频会报错 action1 = TouchActions(self.driver) el = self.d ...