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题相关推荐

  1. CF Gym 100227 I题 题解

    这场Gym全名是这个:2013-2014 CT S01E01: Extended 2000 ACM-ICPC East Central North America Regional Contest ( ...

  2. CF 绿蓝题做题记录

    CF 绿蓝题做题记录 题单 最近有在经常随机一些 CF 绿蓝难度的题目,用于提升思维.这里专门开个坑,记录一下思路障碍经验什么的. 自然这些内容也在每天本来的做题记录中就有记录,只不过这里只是把它集合 ...

  3. Caravan Robbers CF Gym - 100134C

    https://cn.vjudge.net/problem/Gym-100134C http://codeforces.com/gym/100134/attachments 答案就是最小的min(bi ...

  4. Gym - 101972B Arabella Collegiate Programming Contest (2018) B. Updating the Tree 树DFS

    题面 题意:T组数据,每次给你1e5个点的树(1为根),每个点有一权值,询问1-n每个节点的子树中, 至少修改几个点的权值(每次都可以任意修改),才能让子树中任意2点的距离==他们权值差的绝对值 无解 ...

  5. CF Gym 100187E Two Labyrinths (迷宫问题)

    题意:问两个迷宫是否存在公共最短路. 题解:两个反向bfs建立层次图,一遍正向bfs寻找公共最短路 #include<cstdio> #include<cstring> #in ...

  6. Petrozavodsk Winter Camp, Day 8, 2014, Mosaic

    给你三个数字a,b,c,让你用1-m的数字凑出来 结论:有2个1和2个2肯定凑不出来,然后就搜索 #include <bits/stdc++.h> using namespace std; ...

  7. Petrozavodsk Winter Camp, Warsaw U, 2014, A The Carpet

    一个地图上有若干障碍,问允许出现一个障碍的最大子矩形为多大? 最大子矩形改编 #include<bits/stdc++.h> using namespace std; #define re ...

  8. CF Gym 101630 B Box

    题目的意思大概就是给一个长方体的长宽高,问他能不能用一个w*h的纸剪出来,就是说展开图的长宽能不能比给定的小. 题目给了11中展开图的拓扑结构,我觉得这个很关键,要是题目没有给这个我可能想不到那么全面 ...

  9. CF GYM 100703G Game of numbers

    题意:给n个数,一开始基数为0,用这n个数依次对基数做加法或减法,使基数不超过k且不小于0,输出最远能运算到的数字个数,输出策略. 解法:dp.dp[i][j]表示做完第i个数字的运算后结果为j的可能 ...

最新文章

  1. fedora常见问题和解决方案
  2. CloudFlare免费CDN优化指南
  3. php未正确拼写字 css,前端Bug解决方案
  4. ft2232驱动安装方法_关于Win10无法安装英伟达驱动的处理方法
  5. maven使用OracleDB jdbc Driver
  6. usaco题思考记录
  7. 数据库镜像怎么还原数据库_镜像数据库上的日志传送
  8. Redhat Enterprise Linux 6 正式版已经发布!
  9. VALSE学习(十五):网络搜索结构-NAS
  10. hp服务器 raid卡驱动安装系统,hp 服务器 linux raid驱动
  11. 百度云网盘高速通道加速破解版 去广告纯净版干净云
  12. 总结在CentOS7上搭建CUDA10+cudnn7的Tensorflow-gpu环境的经验
  13. ASTC纹理压缩格式详解
  14. mentohust配置
  15. Android实现一键开启自由窗口、分屏、画中画模式——画中画模式
  16. 各种浏览器下载tampermonkey网址
  17. 在 Microsoft Windows 平台上安装 JDK 17
  18. VMware虚拟机如何开启雷电模拟器的VT?
  19. 我国数据安全法详细解读
  20. 国防大学计算机学院,国防大学和国防科技大学是同一所学校吗?很多人傻傻都分不清!...

热门文章

  1. 使用异或解题 —— 序列中仅出现一次的两个数
  2. 从“递归结构”到解汉诺塔问题的求解
  3. 辨异 —— Python 的深拷贝与浅拷贝
  4. android拷贝文件到内部存储,将文件保存在内部存储android中
  5. python入门-Python入门之类(class)
  6. python爬虫代码-Python爬虫入门(01) -- 10行代码实现一个爬虫
  7. python画条形图-Python数据可视化:基于matplotlib绘制「条形图」
  8. python视频教程全集-Python 3视频教程全集(2018版)免费送啦
  9. python画图代码-Python实战小程序利用matplotlib模块画图代码分享
  10. python编程语言-为什么我不建议你将python作为入门编程语言