【CF gym 103260】40th Petrozavodsk Programming Camp, Day 5,2021.2.3 水题2题
M、Discrete Logarithm is a Joke
题意:
思路:
- 不难想到an=g^{an+1},因为样例给了 a[1000000]的值,所以反着推就行了。
- 记得开int128,longlong会爆,也不要用浮点数表示整数,double会爆,提交的时候选G++20,不然编译器会爆。
#include<bits/stdc++.h>
using namespace std;
const int maxn = 1e6+10;typedef __int128 LL;
inline __int128 read(){__int128 x=0,f=1;char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}return x*f;
}
inline void print(__int128 x){if(x<0){putchar('-');x=-x;}if(x>9)print(x/10);putchar(x%10+'0');
}//const LL mod = 1e18+31;//WA
const LL mod = 1000000000000000031;//M 题别用浮点数表示整数
LL pows(LL a, LL x, LL p){ if(x==0)return 1; LL t = pows(a, x>>1,p);if(x%2==0)return t*t%p;return t*t%p*a%p;}LL f[maxn];int main(){int n = 1000000;f[n] = 300;for(int i = n-1; i >= 0; i--){f[i] = pows(42LL,f[i+1],mod);}int x; cin>>x;print(f[x]);return 0;
}/*
M = 1e18+31;
g = 42 是原根
[1,φ(M)],φ(M)=1e18+30,[1,1e18+30]
g^i, if gcd(i,φ(M))=1, i是原根,,即g^i同余1(mod M)
f(x)是下一个原根?
所以an = g^f(an)?
an = g^a[n+1]?f(x)是
g^f(x)同余x(mod M),
f(0) = a[0] = 960002411612632915;
a[1] = f(a[0]);
g^a[1]同余a[0] (mod M)
g^a[2]同余a[1] (mod M)*/
J、Increasing or Decreasing
题意:
- 给出两个长为n的排列,求构造一组操作次数不超过n次的方案让排列A变为排列B。
- 每次操作可以选定一个区间[l, r]给其升序或降序排序。
思路:
- 盲猜肯定需要n次,一次确定一个位置。所以想到先把1-n升序排序,然后从后往前枚举B序列,每次找到B[i]在A中的位置l,把l到当前B中未确定的r按照升序或降序排序后,B[i]就被放到了正确的位置。
- 因为A数组每次都是对后缀进行升序或降序排序的,所以找到的那个A中的B[i],一定是他所在位置到B未确定的数的末位中的最大值或最小值,因为那一段都是单调的。
#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
const int maxn = 550;
int a[maxn], b[maxn];
bool cmp(int x, int y){return x>y;
}
int main(){int n; cin>>n;for(int i = 1; i <= n; i++)cin>>a[i];for(int i = 1; i <= n; i++)cin>>b[i];cout<<n<<"\n";cout<<1<<" "<<n<<" "<<"I\n";sort(a+1,a+n+1);for(int i = n; i >= 2; i--){int t = b[i];int l, r=i;for(int j = i; j >= 1; j--){if(a[j]==t){l = j;break;}}///if(l==r)continue;if(a[l]>a[r]){sort(a+l,a+r+1);cout<<l<<" "<<r<<" "<<"I\n";}else{sort(a+l,a+r+1,cmp);cout<<l<<" "<<r<<" "<<"D\n";}//for(int i = 1; i <= n; i++)cout<<a[i]<<" ";cout<<"\n";}//for(int i = 1; i <= n; i++)cout<<a[i]<<" ";cout<<"\n";return 0;
}
【CF gym 103260】40th Petrozavodsk Programming Camp, Day 5,2021.2.3 水题2题相关推荐
- CF Gym 100227 I题 题解
这场Gym全名是这个:2013-2014 CT S01E01: Extended 2000 ACM-ICPC East Central North America Regional Contest ( ...
- CF 绿蓝题做题记录
CF 绿蓝题做题记录 题单 最近有在经常随机一些 CF 绿蓝难度的题目,用于提升思维.这里专门开个坑,记录一下思路障碍经验什么的. 自然这些内容也在每天本来的做题记录中就有记录,只不过这里只是把它集合 ...
- Caravan Robbers CF Gym - 100134C
https://cn.vjudge.net/problem/Gym-100134C http://codeforces.com/gym/100134/attachments 答案就是最小的min(bi ...
- Gym - 101972B Arabella Collegiate Programming Contest (2018) B. Updating the Tree 树DFS
题面 题意:T组数据,每次给你1e5个点的树(1为根),每个点有一权值,询问1-n每个节点的子树中, 至少修改几个点的权值(每次都可以任意修改),才能让子树中任意2点的距离==他们权值差的绝对值 无解 ...
- CF Gym 100187E Two Labyrinths (迷宫问题)
题意:问两个迷宫是否存在公共最短路. 题解:两个反向bfs建立层次图,一遍正向bfs寻找公共最短路 #include<cstdio> #include<cstring> #in ...
- Petrozavodsk Winter Camp, Day 8, 2014, Mosaic
给你三个数字a,b,c,让你用1-m的数字凑出来 结论:有2个1和2个2肯定凑不出来,然后就搜索 #include <bits/stdc++.h> using namespace std; ...
- Petrozavodsk Winter Camp, Warsaw U, 2014, A The Carpet
一个地图上有若干障碍,问允许出现一个障碍的最大子矩形为多大? 最大子矩形改编 #include<bits/stdc++.h> using namespace std; #define re ...
- CF Gym 101630 B Box
题目的意思大概就是给一个长方体的长宽高,问他能不能用一个w*h的纸剪出来,就是说展开图的长宽能不能比给定的小. 题目给了11中展开图的拓扑结构,我觉得这个很关键,要是题目没有给这个我可能想不到那么全面 ...
- CF GYM 100703G Game of numbers
题意:给n个数,一开始基数为0,用这n个数依次对基数做加法或减法,使基数不超过k且不小于0,输出最远能运算到的数字个数,输出策略. 解法:dp.dp[i][j]表示做完第i个数字的运算后结果为j的可能 ...
最新文章
- fedora常见问题和解决方案
- CloudFlare免费CDN优化指南
- php未正确拼写字 css,前端Bug解决方案
- ft2232驱动安装方法_关于Win10无法安装英伟达驱动的处理方法
- maven使用OracleDB jdbc Driver
- usaco题思考记录
- 数据库镜像怎么还原数据库_镜像数据库上的日志传送
- Redhat Enterprise Linux 6 正式版已经发布!
- VALSE学习(十五):网络搜索结构-NAS
- hp服务器 raid卡驱动安装系统,hp 服务器 linux raid驱动
- 百度云网盘高速通道加速破解版 去广告纯净版干净云
- 总结在CentOS7上搭建CUDA10+cudnn7的Tensorflow-gpu环境的经验
- ASTC纹理压缩格式详解
- mentohust配置
- Android实现一键开启自由窗口、分屏、画中画模式——画中画模式
- 各种浏览器下载tampermonkey网址
- 在 Microsoft Windows 平台上安装 JDK 17
- VMware虚拟机如何开启雷电模拟器的VT?
- 我国数据安全法详细解读
- 国防大学计算机学院,国防大学和国防科技大学是同一所学校吗?很多人傻傻都分不清!...
热门文章
- 使用异或解题 —— 序列中仅出现一次的两个数
- 从“递归结构”到解汉诺塔问题的求解
- 辨异 —— Python 的深拷贝与浅拷贝
- android拷贝文件到内部存储,将文件保存在内部存储android中
- python入门-Python入门之类(class)
- python爬虫代码-Python爬虫入门(01) -- 10行代码实现一个爬虫
- python画条形图-Python数据可视化:基于matplotlib绘制「条形图」
- python视频教程全集-Python 3视频教程全集(2018版)免费送啦
- python画图代码-Python实战小程序利用matplotlib模块画图代码分享
- python编程语言-为什么我不建议你将python作为入门编程语言