POJ 2109 巧妙解法】的更多相关文章

Int最大是10^9.所以一般思路是二分+高精度.但是double 范围是10^(-307)-10^308所以可以用double型.k^n=p.所以有k=p^(1/n). 见代码: #include<stdio.h>#include<string.h>#include<iostream>using namespace std;#include<math.h> int main(){     double n, p;     while(cin >>…
题目地址:http://poj.org/problem?id=2109 /* 题意:k ^ n = p,求k 1. double + pow:因为double装得下p,k = pow (p, 1 / n); 基础知识: 类型 长度 (bit) 有效数字 绝对值范围 float 32 6~7 10^(-37) ~ 10^38 double 64 15~16 10^(-307) ~ 10^308 long double 128 18~19 10^(-4931) ~ 10 ^ 4932 2. 二分查找…
1.Link: http://poj.org/problem?id=2109 http://bailian.openjudge.cn/practice/2109/ 2.Content: Power of Cryptography Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 18872   Accepted: 9520 Description Current work in cryptography involves (…
题目:http://poj.org/problem?id=2109 题意:求一个整数k,使得k满足kn=p. 思路:exp()用来计算以e为底的x次方值,即ex值,然后将结果返回.log是自然对数,就是e为底计算的.换底公式 log<a>(b) = log<c>(b) / log<c>(a). float 的范围为-2^128 ~ +2^127,也即-3.40E+38 ~ +3.40E+38: double 的范围为-2^1024 ~ +2^1023,也即-1.79E+…
题目链接: http://poj.org/problem?id=2109 参考: http://blog.csdn.net/code_pang/article/details/8263971 题意: 给定n,p,求k使得kn=p(1≤n≤200, 1≤p<10101, 1≤k≤109) 分析: 高精度+二分~~ k的位数为p的位数除以n的向上取整,这样知道k的位数便可以在范围内二分了~注意这里的答案是向下取整~~ 代码: #include<cstring> #include<cst…
[题目链接] http://poj.org/problem?id=3109 [题目大意] 在一个棋盘上放满白子,现在把一些白子变成黑子, 如果一个白子上下左右都有黑子,就会变成黑子,问最终黑子个数 [题解] 首先我们在每列的开头和结尾做标记,之后对行线扫描, 如果是列的开头,那么在该列中标记,如果是列的结尾,则在该列中去除标记 那么我们只要统计行的开头到行的结尾之间夹着多少列标记,且该列下该行没有原来的黑子 就是该行新增的黑子数量,对于总的黑子数量,可以用树状数组统计,之后容斥一下列标记即可.…
Power of Cryptography Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 26622   Accepted: 13301 Description Current work in cryptography involves (among other things) large prime numbers and computing powers of numbers among these primes.…
谁骗我这是贪心TT 大概就是求k的n次方等于p时的k(k到10^9),由于,p的数据到了10^101,n到200,所以直接算估计T ?? 反正看完想到二分,其实数据要是再大点估计我这个二分不行. 网上有三种思路:     1.很自然的,因为觉得数据很大,会去想高精度(可以自己想,或者pow直接double数据还是挺小的).然后加二分猜数.     2.于是想到转换数学运算:指对互化.用double存,但是double 精确位只有6-7.而没有logx Y,只有先转化为以e为底的对数.用lognP…
点击打开链接 Power of Cryptography Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 16388   Accepted: 8285 Description Current work in cryptography involves (among other things) large prime numbers and computing powers of numbers among these pr…
#include<iostream> #include<stdio.h> #include<math.h> using namespace std; int main() { //freopen("acm.acm","r",stdin); long double num; long double k; while(cin>>num>>k) { cout<<pow(k,1.0/num)<&l…