Binary mod and divide(模拟+大数)】的更多相关文章

描述 Most people know that the binary operations. Do you know the binary mod and divide? Now give the Binary number N and a integer number M ,Can you tell me the answer of N%(2^M) and N/(2^M)? 输入 Input contains multiple test cases. The first line of ea…
传送门:http://acm.hdu.edu.cn/showproblem.php?pid=5920 我们的思路是: 对于一个串s,先根据s串前一半复制到后一半构成一个回文串, 如果这个回文串比s小,则做减法并递归: 如果相等直接结束: 如果大,那么找前一半离中心最近的一个非零数减1,并把这位之后到中心的数全都变为9,例如11000->11011,大了,所以变成10901: ps:因为大数相减要传指针参数,调了蛮久,发现指针的乱指了,所以开了一个二维数组,每一次算出的原串和回文串都用新的指针,也…
1008 N的阶乘 mod P 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 输入N和P(P为质数),求N! Mod P = ? (Mod 就是求模 %)   例如:n = 10, P = 11,10! = 3628800 3628800 % 11 = 10 Input 两个数N,P,中间用空格隔开.(N < 10000, P < 10^9) Output 输出N! mod P的结果. Input示例 10 11 Output示例 10 题目链接:http://…
计算n! #include<cstring> #include<cstdio> using namespace std; ]; int main() { int n; while(~scanf("%d",&n)) { memset(num,,sizeof(num)); ; num[] = ; ; i <= n; i++){ ; j <= len; j++){ num[j] = num[j]*i; } ; j <= len; j++){…
紫上给得比较奇怪,其实没有必要用唯一分解定理.我觉得这道题用唯一分解只是为了表示大数. 但是分解得到的幂,累乘的时候如果顺序很奇怪也可能溢出.其实直接边乘边除就好了.因为答案保证不会溢出, 设定一个精度范围,如果中间结果超过了精度范围就保存起来,最后sort一遍从两端同时乘就不会溢出了. /********************************************************* * --------------Tyrannosaurus--------- * * aut…
题意 : 给出一颗无限层的满二叉树,然后每个值为 X (根的 X 等于 1 ) 左孩子的值是 2*X,右孩子的值是 2*X+1 ,现在有两种操作,(1, x,k) 表示将 x 所在层的所有节点整体向右循环地移动 k 个单位.(2,x,k)表示将 x 所在的层的所有节点及其子树向右循环地移动 k 个单位.(3,x)输出从 x 到根的路径 分析 : 第一个操作不难进行模拟 只要给每个层记录其偏移量,最后查询的时候依据偏移量来输出具体的值即可 关键是第二个操作 仔细一想,会发现一个规律 如果第一层移动…
题目链接:https://cn.vjudge.net/problem/HYSBZ-1263 题目大意:中文题目 具体思路:先进了能的拆成3,如果当前剩下的是4,就先不减去3,直接乘4,如果还剩2的话,也乘2. 如果当n==4的时候,我们将n拆成2*2.如果当n>=5的时候,如果按照4拆的话,显然不如3*2的数大. AC代码: #include<iostream> #include<stack> #include<stdio.h> #include<cstri…
A + B Problem II Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 435932    Accepted Submission(s): 84825 Problem Description I have a very simple problem for you. Given two integers A and B, you…
差值 时间限制:3000 ms  |  内存限制:65535 KB 难度:3 描述 输入一个整数数组,将它们连接起来排成一个数,找出能排出的所有数字中最大,最小的两个,输出两个数的差值.例如输入数组{1,  2},则输出9. 输入 第一行输入一个整数T,表示有T组测试数据.每组测试数据的第一行输入一个整数n(0<n<=1000),第二行输入n个整数ai(0<=ai<2^32). 输出 输出最大数最小数的差值,输出占一行. 样例输入 1 3 1 2 3 样例输出 198 上传者 ZW…
本题是CVTE二面编程题,首先考虑返回值肯定是一个字符串(int会有溢出可能),并且两个字符串只含数字,不含”+“.”-“这种. 代码如下: public static String add(String str1, String str2) { if(str1 == null) return str2; if(str2 == null) return str1; StringBuffer s1 = new StringBuffer(str1).reverse(); StringBuffer s…