题解 CF327C 【Magic Five】
这道题带坑,假如没有发现肯定会爆。
首先先搜索一遍0和5,储存在数组a里面。
那么应当有2 ^ a1 +2 ^ a2 +...+ 2 ^ an。
然而这道题没那么简单,数串还可以重复k次。
因此,需要在此基础上在乘上1 + 2 ^ l + 2 ^ 2l +...+ 2 ^ (k - 1)l。其中l为数串长度。
如果到这里就提交,那就只能和AC说拜拜了。
为了省去不必要的计算,可以通过等比数列求和公式将后一个算式化简为(2 ^ kl - 1) / (2 ^ l - 1)
可即便如此还是会炸,只能借助费马小定理:a ^ (p-1) % p == 1。
所以算式可以进一步化简为(2 ^ kl - 1) * (a ^ (l - 1) ^ (p-2)) / (2 ^ l - 1)
然后快速幂就OK了。
AC代码如下:
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
using namespace std; const int MODE = ;
const int maxn = ;
typedef long long ll; ll power(ll a, ll n) {
ll b = ;
while(n) {
if(n & ) {
b *= a;
b %= MODE;
}
n >>= ;
a *= a;
a %= MODE;
}
return b;
} ll k, ans, cur;
string num; int main() {
cin >> num >> k;
for(int i = ; i < num.length(); i++) {
if(num[i] == '' || num[i] == '') {
ans += power(, i);
ans %= MODE;
}
}
cur += power(power(, num.length()) - , MODE - ) * (power(, num.length() * k) - );
cur %= MODE;
ans *= cur;
ans %= MODE; cout << ans;
}
题解 CF327C 【Magic Five】的更多相关文章
- PAT甲题题解-1037. Magic Coupon (25)-贪心,水
题目说了那么多,就是给你两个序列,分别选取元素进行一对一相乘,求得到的最大乘积. 将两个序列的正和负数分开,排个序,然后分别将正1和正2前面的相乘,负1和负2前面的相乘,累加和即可. #include ...
- 2013/7/16 HNU_训练赛4
CF328B Sheldon and Ice Pieces 题意:给定一个数字序列,问后面的数字元素能够组成最多的组数. 分析:把2和5,6和9看作是一个元素,然后求出一个最小的组数就可以了. #in ...
- 题解-Magic Ship
Magic Ship 你在 \((x_1,y_1)\),要到点 \((x_2,y_2)\).风向周期为 \(n\),一个字符串 \(s\{n\}\) 表示风向(每轮上下左右),每轮你都会被风向吹走一格 ...
- [题解] 2019牛客暑期多校第三场H题 Magic Line
题目链接:https://ac.nowcoder.com/acm/contest/883/H 题意:二维平面上有n个不同的点,构造一条直线把平面分成两个点数相同的部分. 题解:对这n个点以x为第一关键 ...
- FZU 2280 Magic(字符串Hash)题解
题意:给你n个字符串,每个字符串有一个值w,有q次询问,一共两种操作:一是“1 x y”表示把第x个串的w变为y:二是“2 x”,输出第x个串能放几次魔法.放魔法的条件是这样:用串x放魔法,如果在1~ ...
- [题解]Magic Line-计算几何(2019牛客多校第三场H题)
题目链接:https://ac.nowcoder.com/acm/contest/883/H 题意: 给你偶数个点的坐标,找出一条直线将这n个点分成数量相等的两部分 并在这条直线上取不同的两个点,表示 ...
- 题解【洛谷P2730】魔板 Magic Squares
题面 首先我们可以发现,在每一次 BFS 时按照 \(A→B→C\) 的顺序枚举遍历肯定是字典序最小的. 然后就是普通的 BFS 了. 我们考虑使用 \(\text{STL map}\) 来存储起点状 ...
- CF710C Magic Odd Square 题解
Content 构造出一个 \(n\times n\) 的矩阵,使得这个矩阵由 \(1\sim n^2\) 这些数字组成,并且这个矩阵的每行,每列,以及对角线的和都为奇数. 数据范围:\(1\leqs ...
- UVA471 Magic Numbers 题解
1.题目 题意很简单:输入n,枚举所有的a,b,使得 (1)满足a/b=n. (2)满足a,b各个位上的数字不相同. 2.思路 (1)对于被除数,要满足各个位上的数字,显然最大枚举到987654321 ...
随机推荐
- pugixml读取unicode编码的xml文件的做法
作者:朱金灿 来源:http://blog.csdn.net/clever101 实际上在多字节编码的情况下,即以记事本打开显示的ANSI编码的,如下图: pugixml是可以直接读取中文字符的,示例 ...
- AndroidStudio EventBus报错解决方法its super classes have no public methods with the @Subscribe
首先说明,以前我用eventBus的jar包写得项目demo,前几天就写了一个EventBus的实例,这次我没用jar包,直接用gradle引用的,可是demo写完了,报错: its super cl ...
- Android APP 调试过程中遇到的问题。
调试过过程中APP安装完启动后有的时候会异常退出,报这个错误.有的时候可以直接启动.查找不到原因.网上说把commit方法替换成commitAllowingStateLoss() 也无效. Andro ...
- 如何发布到NPM上(转)
简要:这篇文章介绍了如何讲自己的包发布到NPM上,马克一下,将来有用 ... npm包发布 发布npm包,更方便以后下载使用. 我们已经把插件代码上传到github上面了,那么我们是否可以也做成一个n ...
- ansible搭建mysql主主模式
ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet.cfengine.chef.func.fabric)等优点,实现了批量系统配置.批量程序部署.批量运行命 ...
- 平衡二叉树(AVLTREE,双链表实现)
首先说下好久没更新了,最近打游戏和工作都有点多,o(^▽^)o. 写这个AVL发现自己的代码风格好差,尤其是变量命名这块,后来意识到了,想去改,但是太多了,改了几个就不想改了,做这个是记录下自己的成长 ...
- Google的10大座右铭
1. 以用户为中心,其他一切纷至沓来. 创建伊始,Google 即以提供最佳的用户体验为其中心任务.虽然很多公司主张客户利益优先,但难以抗拒各种诱惑,往往会牺牲客户的少量利益来增加股东价值. Goog ...
- 阿里云CentOS系统配置iptables防火墙
虽说阿里云推出了云盾服务,但是自己再加一层防火墙总归是更安全些,下面是我在阿里云vps上配置防火墙的过程,目前只配置INPUT.OUTPUT和FORWORD都是ACCEPT的规则 一.检查iptabl ...
- Qt 5.3 下OpenCV 2.4.11 开发(5)最高效的像素引用
OpenCV 提供一个函数 getTickCount() ,能够用来測量一段代码的执行时间.另一个函数 getTickFrequency() 用来返回每秒内的时钟周期.代码操作例如以下: double ...
- 【C语言】递归函数DigitSum(n)
//写一个递归函数DigitSum(n),输入一个非负整数,返回组成它的数字之和, //比如,调用DigitSum(1729),则应该返回1+7+2+9,它的和是19 #include <std ...