51Nod 1873 初中的算术】的更多相关文章

1873 初中的算术 基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题  收藏  关注 Noder现在上初三了,正在开始复习中考.他每天要计算型如 (a× a× a× ⋯× a)n个a 的式子. 其中 0.0<a<99.999,0<n<26 . 虽然Noder会计算,但是老是算错,现在他想要你来写一个程序输出正确的结果,以便他核对. Input 单组测试数据. 第一行有一个实数a和一个整数n,…
大神的字符串快速幂 #include <iostream> #include <string> #include <algorithm> #include <cstdio> #include <cstring> using namespace std; //字符串的乘法 string multi(string a, string b){ ], len = a.length() + b.length(); memset(arr, , sizeof…
1873 初中的算术 1 秒 131,072 KB 10 分 2 级题   Noder现在上初三了,正在开始复习中考.他每天要计算型如 (a× a× a× ⋯× a)n个a(a× a× a× ⋯× a)⏟n个a 的式子. 其中 0.0<a<99.999,0<n<260.0<a<99.999,0<n<26 . 虽然Noder会计算,但是老是算错,现在他想要你来写一个程序输出正确的结果,以便他核对. 收起…
JAVA BigDecimal import java.util.*; import java.math.*; public class Main { public static void main(String[] args) { Scanner cin = new Scanner(System.in); String str = cin.next(); int n = cin.nextInt(); BigDecimal res = new BigDecimal(1); final BigDe…
www.51nod.com/onlineJudge/questionCode.html#!problemId=1189 1189 阶乘分数 题目来源: Spoj 基准时间限制:1 秒 空间限制:131072 KB 分值: 80 难度:5级算法题 收藏 关注 1/N! = 1/X + 1/Y(0<x<=y),给出N,求满足条件的整数解的数量.例如:N = 2,1/2 = 1/3 + 1/6,1/2 = 1/4 + 1/4.由于数量可能很大,输出Mod 10^9 + 7.   Input 输入一个…
51Nod是个好地方啊 题意 51Nod基础题第二题,高精度加法,可能有负数. 解题 如果按照一般的高精度,我们发现要分情况讨论,还要写高精度加法和减法,代码实现有点烦.而初中数学里说,省略加号的和.也就是说,只有加法,没有减法.那么我们又没有办法在做高精度的时候也统一加减法? 当然有咯,不然我写这博客干啥 那么到底怎么办呢? 我们还是以加法作为基准,统一加减法.我们知道,减去某个数,就是加上它的相反数.这对于高精度中每一位的操作也是同理.然后我们考虑进位的问题.同样的,我们最后输出每个数位上的…
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1244 模板题... 杜教筛和基于质因子分解的筛法都写了一下模板. 杜教筛 用杜教筛求积性函数\(f(n)\)的前缀和\(S(n)=\sum\limits_{i=1}^nf(i)\),需要构造一个\(g(n)\)使得\(\sum\limits_{d|n}f(d)g(\frac nd)\)和\(\sum\limits_{i=1}^ng(i)\)都可以快速求出.因为我们有公式…
51Nod  1268  和为K的组合 1268 和为K的组合 基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题 给出N个正整数组成的数组A,求能否从中选出若干个,使他们的和为K.如果可以,输出:"Yes",否则输出"No". Input 第1行:2个数N, K, N为数组的长度, K为需要判断的和(2 <= N <= 20,1 <= K <= 10^9) 第2 - N + 1行:每行1个数,对应数组的元素A…
51Nod   1428  活动安排问题 Link: http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1428 1428 活动安排问题 基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题 有若干个活动,第i个开始时间和结束时间是[Si,fi),同一个教室安排的活动之间不能交叠,求要安排所有活动,最少需要几个教室?  Input 第一行一个正整数n (n <= 10000)代表活动的个数.…
51Nod 1278 相离的圆 Link: http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1278 1278 相离的圆 基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题 平面上有N个圆,他们的圆心都在X轴上,给出所有圆的圆心和半径,求有多少对圆是相离的. 例如:4个圆分别位于1, 2, 3, 4的位置,半径分别为1, 1, 2, 1,那么{1, 2}, {1, 3} {2, 3} {2…
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1501 dp求出环状不连续的前缀和,剩下东西都可以算出来,比较繁琐. 时间复杂度\(O(n+m)\). #include<cstdio> #include<cstring> #include<algorithm> using namespace std; typedef long long ll; const int N = 500003; in…
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1622 简单题..直接暴力快速幂 #include<cstdio> #include<cstring> #include<algorithm> using namespace std; typedef long long ll; const ll p = 1000000007; int main() { ll A, B, C; scanf(&qu…
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1616 这道题主要是查询一个数是不是原有集合的一个子集的所有数的gcd. 只要枚举一个数的倍数暴力判断就可以了,时间复杂度\(O(alna),a=10^6\) #include<cstdio> #include<cstring> #include<algorithm> using namespace std; bool vis[1000003];…
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1674 对区间分治,统计\([l,r]\)中经过mid的区间的答案. 我的做法是从mid向右扫到r,统计出所有\([mid,i],mid\leq i \leq r\)的and和or值. 然后发现这些and和or值有很多相同的,把相同的压在一起并记录sum,再从mid-1扫到l并暴力从mid向右统计答案. 事实上因为\([mid,i],mid\leq i \leq r\)是…
对于操作数的左位移都是相同的,右边空出来的位置用0补齐. 但是对于右位移,对于有符号和无符号数是不一样的,最高位的1有两种处理方式.逻辑位移和算术位移. 逻辑位移:右移入位用0补齐 算术位移:右移入位用原先的该值得符号位决定. #include <stdio.h> int main() { int num = -128; printf("%08x\n",num); num = num >> 4; printf("%08x\n",num); n…
先说说前面的SPOJ-RNG吧,题意就是给n个数,x1,x2,...,xn 每次可以生成[-x1,x1]范围的浮点数,把n次这种操作生成的数之和加起来,为s,求s在[A,B]内的概率 连续形的概率 假设有3步,那整个分布范围相当于一个立体几何图形,上界b和下界a可当成一个x+y+z=a或b的平面看待,算出x<=X1 x>=-X1 y<=X2 y>=-X2 z<=X3 z>=-X3 发现体积就是f(x1,x2,x3)+f(-x1,-x2,x3)+f(-x1,x2,-x3)…
题目链接:51nod 1181 质数中的质数(质数筛法) #include<cstdio> #include<cmath> #include<cstring> #include<algorithm> using namespace std; typedef long long ll; ; ]; void getPrime(){ memset(prime, , sizeof(prime)); ;i <= N; i++){ if(!prime[i]) pr…
题目链接:51nod 1174 1174 区间中最大的数 ST(Sparse Table)算法学习参考博客:http://blog.csdn.net/niushuai666/article/details/6624672 O(nlogn)预处理,O(1)查询 #include<cstdio> #include<algorithm> #include<cmath> using namespace std; ; ]; int a[N]; int n; void RMQ_in…
题目链接:https://www.51nod.com/contest/problem.html#!problemId=1622 第一次参加算法马拉松,我就是去看大神们疯狂秒题,然后感受绝望的orz.. 题解: 设M = P xor A,则 M∈A,M是P的补集,M与P一一对应. 设N = Q xor B,则 N∈B,N是B的补集,N与B一一对应. 所以(P xor A)xor(Q xor B) = M xor N = A xor B 即求有多少对(M,N),M∈A,N∈B,满足上式. 因为属于A…
题目链接:51nod 1244 莫比乌斯函数之和 题解参考syh学长的博客:http://www.cnblogs.com/AOQNRMGYXLMV/p/4932537.html %%% 关于这一类求积性函数前缀和的方法,学习参考博客:http://blog.csdn.net/skywalkert/article/details/50500009  要好好看大神的博客哦orz 用筛法预处理前N^(2/3)项,后面的记忆化搜索解决. 不太会用哈希,就用map记忆化一下: #include<cstdi…
题目链接:51nod 1240 莫比乌斯函数 莫比乌斯函数学习参考博客:http://www.cnblogs.com/Milkor/p/4464515.html #include<cstdio> #include<cmath> #include<cstring> #include<algorithm> using namespace std; typedef long long ll; int miu(int n){ int i, cnt; ;//质因子个数…
题目链接:51nod 1113 矩阵快速幂 模板题,学习下. #include<cstdio> #include<cmath> #include<cstring> #include<algorithm> using namespace std; typedef long long ll; ; ; int n, m; struct Mat{//矩阵 ll mat[N][N]; }; Mat operator * (Mat a, Mat b){//一次矩阵乘法…
1.算术运算符 常见的算术运算符 运算类型 运算符 举例 结果 取反运算 - -$a 返回$a的负值 加法运算 + $a + $b 返回$a与$b的和 减法运算 - $a - $b 返回$a与$b的差 乘法运算 * $a * $b 返回$a与$b的积 除法运算 / $a / $b 返回$a与$b的商 取余运算 % $a % $b 返回$a与$b的余数 2.逻辑运算符 PHP中的逻辑运算符 运算类型 运算符 举例 结果 逻辑与 && 或 and $a && $b 或 $a a…
将 expression 转换为数据类型 int 时发生算术溢出错误 2种快速处理方法 1.CONVERT(bigint, 字段名): 2.Cast(字段名 as decimal(18,2)): 这个问题是由于数据超大而引起的,那么当然要想办法把查询的SQL改下,考虑能不能将查询的数据转化下, 转化程比Int 类型存储范围大的数据类型.当然这只是个临时的解决方法,彻底解决这个问题还是要调整数据库将字段由Int型调整为适当类型.…
一.算术运算符 算术运算符主要用于进行基本的算术运算,如加法.减法.乘法.除法等. Java 中常用的算术运算符: 其中,++ 和 -- 既可以出现在操作数的左边,也可以出现在右边,但结果是不同滴 例1: 运行结果: 例2: 运行结果: 一定要注意哦!自增和自减运算符只能用于操作变量,不能直接用于操作数值或常量!例如 5++ . 8-- 等写法都是错误滴! PS:% 用来求余数,也称为"取模运算符" 例子: public class HelloWorld{    public stat…
× 目录 [1]一元加 [2]一元减 [3]递增[4]递减[5]加法[6]减法[7]乘法[8]除法[9]求余 前面的话 javascript中的算术操作主要通过算术运算符来实现,本文将介绍算术运算符的内容.算术运算符包括一元算术运算符和二元算术运算符两种 一元算术运算符 一元算术运算符用于一个单独的操作数,并产生一个新值.在javascript中,一元运算符具有很高的优先级,而且都是右结合(right-associative) 一元算术运算符包括一元加法(+).一元减法(-).递增(++)和递减…
最近偶尔发现一个算法编程学习的论坛,刚开始有点好奇,也只是注册了一下.最近有时间好好研究了一下,的确非常赞,所以推荐给大家.功能和介绍看下面介绍吧.首页的标题很给劲,很纯粹的Coding社区....虽然目前人气可能一般,但这里面题目和资源还是比较丰富的,希望给初学者一个帮助. 本文原文地址:[推荐]一个算法编程学习中文社区-51NOD[算法分级,支持多语言,可在线编译] 1.51NOD论坛介绍 该论坛网址:http://www.51nod.com/index.html 论坛主要是进行算法学习和交…
用优先队列来贪心,是一个很好地想法.优先队列在很多时候可以维护最值,同时可以考虑到一些其他情况. http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1163 #include<queue> #include<stack> #include<cmath> #include<cstdio> #include<cstring> #include<iostream> #…
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1013 这是一个等比数列,所以先用求和公式,然后和3^(n+1)有关,有n比较大,所以用快速幂来解决,又有/2的操作,所以可以用费马小定理取逆元. #include<map> #include<queue> #include<stack> #include<cmath> #include<cstdio> #include&…
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1050 对于普通的数组,只要求一次最大子段和即可.但是这题是可以循环的,所以要另外分析. 1:最大的值在原数组中间部分. 2:最大值是结尾部分和开头部分.(如果要循环,就是这种情况) 对于1情况可以做一次最大子段和.而第二种情况出现时因为,中间部分很小,加了后最后的值会变小,所以不能加,也就是说中间部分的 值取反后,是最大的.这样就可以先进行对原数组的值取反,然后求一次最…