Atcoder #017 agc017 A.Biscuits 简单数学】的更多相关文章

LINK 题意:水题 求取数,使得和为奇数或偶数的方案数. 思路:统计奇数和偶数,组合求一下发现结果就是$2^{odd-1} + 2^{eve-1}$ 注意特殊情况,即奇数个为0又要求和为奇数的方案数为0,其他情况最小也有1.然后就是很脑残的因为数据范围比赛中交了2次WA,本来写的就慢半天才看出来是2的幂次,还错两次... /** @Date : 2017-07-09 19:57:01 * @FileName: A.cpp * @Platform: Windows * @Author : Lwe…
LINK 题意:树上NIM的模板题,给出一颗树,现有操作删去端点不为根节点的边,其另一端节点都将被移除,不能取者为败 思路:一看就是个NIM博弈题,只是搬到树上进行,树上DFS进行异或 记得#014D题也是博弈...巨水 比赛B题没想出来先做了这题:P /** @Date : 2017-07-09 21:15:04 * @FileName: D 树上删边 NIM 博弈.cpp * @Platform: Windows * @Author : Lweleth (SoungEarlf@gmail.c…
LINK 题意:给出最左和最右两个数,要求往中间填n-2个数,使得相邻数间差的绝对值$∈[L,R]$ 思路:其实也是个水题,比赛中大脑宕机似的居然想要模拟构造一个数列,其实我们只要考虑作为结果的数,其结果必定是进行n-1次了+L -L +R -R 的其中一项,其最小值为$x*L-(n-1-x)*R$ 最大值则是$x*R-(n-1-x)*L$ 那么我们枚举x 其中只要有一种情况使b在区间中满足条件就行了 /** @Date : 2017-07-09 20:31:43 * @FileName: B.…
HDU 5073 Galaxy (2014 Anshan D简单数学) 题目链接http://acm.hdu.edu.cn/showproblem.php?pid=5073 Description Good news for us: to release the financial pressure, the government started selling galaxies and we can buy them from now on! The first one who bought…
洛谷试炼场-简单数学问题 P1403 [AHOI2005]约数研究 Description 科学家们在Samuel星球上的探险得到了丰富的能源储备,这使得空间站中大型计算机"Samuel II"的长时间运算成为了可能.由于在去年一年的辛苦工作取得了不错的成绩,小联被允许用"Samuel II"进行数学研究. 小联最近在研究和约数有关的问题,他统计每个正数N的约数的个数,并以f(N)来表示.例如12的约数有1.2.3.4.6.12.因此f(12)=6.下表给出了一些f…
洛谷试炼场-简单数学问题 B--P1045 麦森数 Description 形如2^P−1的素数称为麦森数,这时P一定也是个素数.但反过来不一定,即如果PP是个素数,2^P-1 不一定也是素数.到1998年底,人们已找到了37个麦森数.最大的一个是P=3021377P=3021377,它有909526位.麦森数有许多重要应用,它与完全数密切相关. 任务:从文件中输入PP(1000<P<31000001000<P<3100000),计算2^P-1 的位数和最后500位数字(用十进制高…
洛谷试炼场-简单数学问题 A--P1088 火星人 Description 人类终于登上了火星的土地并且见到了神秘的火星人.人类和火星人都无法理解对方的语言,但是我们的科学家发明了一种用数字交流的方法.这种交流方法是这样的,首先,火星人把一个非常大的数字告诉人类科学家,科学家破解这个数字的含义后,再把一个很小的数字加到这个大数上面,把结果告诉火星人,作为人类的回答. 火星人用一种非常简单的方式来表示数字――掰手指.火星人只有一只手,但这只手上有成千上万的手指,这些手指排成一列,分别编号为1,2,…
 简单数学算法demo和窗口跳转,关闭,弹框demo <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-cn&quo…
题意: N个人,每个人AC的题数都不一样. Eddy想从中选出一部分人(或者全部)分成两组.必须满足第一组中的最小AC数大于第二组中的最大AC数. 问共有多少种不同的选择方案. 思路: 简单数学.. 代码: ll C(int n,int x){ ll ans=1; rep(i,1,x){ ans = ans*(n+1-i)/i; } return ans; } int main(){ int n; while(cin>>n){ ll ans = 0; rep(i,2,n){ ans += (C…
题面 B - Moderate Differences Time limit : 2sec / Memory limit : 256MB Score : 400 points Problem Statement There are N squares in a row. The leftmost square contains the integer A, and the rightmost contains the integer B. The other squares are empty.…
链接: http://poj.org/problem?id=1844 http://acm.hust.edu.cn/vjudge/contest/view.action?cid=29256#problem/D Sum Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 9795   Accepted: 6406 Description Consider the natural numbers from 1 to N. By a…
一.题面 题目链接 二.分析 一个简单的数学题目,这里首先要把x分解了看 $x = kd + c$ 这样原问题中的n就变成了 $n = dc$ 上面这个式子中,c因为是x除k取余得到的,那么可以肯定 $c < k$ 有了这个式子,就可以直接暴力去试满足条件的c,并且最小的d就可以满足x的最小值. 三.AC代码 #include <bits/stdc++.h> using namespace std; #define INF 1e6+4 int main() { int K, N; //f…
题意: 给你n个数,让你从中选一个子集要求子集中的任何两个数相加都是质数. 思路: 一开始把自己坑了,各种想,后来发现一个简单的性质,那就是两个数相加的必要条件是这两个数之中必定一个奇数一个偶数,(除了含有1 集合以外,1+1等于2也是质数). 考虑两种情况,有1存在和1不存在这两种. 很显然1存在的情况下,所有的1都可以同时在集合中出现,要想集合最大不能加奇数,只能加偶数,那么我们看原始集合中是否有偶数加一是素数. 不考虑1的情况下,这样的子集最大是2,只有存在一个奇数一个偶数相加是质数的情况…
题意: 给你n个数,m次询问,每次询问给l和r代表l和r中间所有子区间中特征值的和. 特征值的定义是在这个区间中找i和j使得|tmp[i]-tmp[j]|/|j-i|最大. 思路: 首先是特征值的定义,这个东西其实是斜率~不知道从哪里看到的证明,这个只有相邻的点才可能最大.所以给定区间找到最大值其实是在相邻的中找.这是这题第一个关键点. 如果一个一个加寻找每一个区间那么复杂度应该是n^2,这里的n大小是1e5,还是不行.然后这个时候思路就是通过单调队列来解决啦~[个人认为更像是个DP]找到某个点…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1420 简单数学题 第一次wa在可能和会出现取模后值为负数的情况. 只要会一个数论上的简单公式(a*b)%c=((a%c)*(b%c))%c 其中*可以为加,减,乘,除.计算时保留中间结果可以避免重复,极大的提升时间效率. 我的代码运行时间为0ms 代码如下: #include<iostream> #include<cmath> #include<cstdlib> #incl…
在此处输入标题 标签(空格分隔): 未分类 A - Biscuits dp[i][0/1]表示当前和是偶数还是奇数,直接转移即可 #include <bits/stdc++.h> #define fi first #define se second #define pii pair<int,int> #define mp make_pair #define pb push_back #define space putchar(' ') #define enter putchar('…
Link 题意:给出一条直线,在直线上取一点,其垂直x,y轴作成一个,求矩阵中所有包含的点的x,y坐标之和的最大值. 思路:对于一个任意一点我们计算公式,对于任意一点$(x, y)$,有$(x+y)^2 + (x+y)(xy+1)$,枚举一个未知量,得另一个未知量向下取整即可. /** @Date : 2017-07-04 14:52:58 * @FileName: B 数学.cpp * @Platform: Windows * @Author : Lweleth (SoungEarlf@gma…
题意: 中文. 思路: 不难发现数学规律是这样的,每次增加的划分区域的数量是每次增加的交点的数量再加一.然后就总结出了递推公式. #include<stdio.h> ]; int main() { ans[]=; ; ;i<=;i++) { ans[i]=ans[i-]+tmp*+; tmp+=; } int t; scanf("%d",&t); ;tt<=t;tt++) { int n; scanf("%d",&n); pr…
https://vjudge.net/problem/CodeForces-1278B 题意:给两个数a和b,有一种操作:第i次操作任选其中一个数加或减i:如第1次操作可以任选其中一个数加1或减1,第2次操作可以任选其中一个数加2或减2.问至少几次操作后使得a和b相等. 思路: 刚看到这道题一时半会没想出来,但难度只是B,理论上应该能做出来,手写列举两数之差cha 0=0 1=1 2=1+3-2 3=1+2 4=2+3-1 5=1+2+3+4-5 6=1+2+3 7=1+2+3+5-4 ...…
https://ac.nowcoder.com/acm/contest/3346/K 题意:判断一个素数p是不是某两个数的立方差. 刚看到这道题一时半会都没有什么思路,看了题解恍然大悟,太久没碰数学或数论的,记录一下过程. 1.立方差公式:x3 - y3 = (x-y)(x2 + xy + y2) 2.(x-y)(x2 + xy + y2)=p 3.因为p是素数,所以x-y=1 4.将x=y+1带入原公式化简得 3y(y+1)=p-1 5.要使上式成立,(p-1)%3==0 &&  sqr…
封装一个数学对象求最大值最小值 <script> var myMath={ PI:3.1415926, max:function(){ var max=arguments[0];//注意arguments的使用 for(var i=0;i<arguments.length;i++){ if(arguments[i]>max){ max=arguments[i]; } } return max; }, min:function(){ var min=arguments[0]; for…
LINK:数列求和 每次遇到这种题目都不太会写.但是做法很简单. 终有一天我会成功的. 考虑类似等比数列求和的东西 帽子戏法一下. 设\(f(k)=\sum_{i=1}^ni^ka^i\) 考虑\(af(k)\)这个式子 两式做差. \((a-1)f(k)=n^n\cdot a^{n+1}-a+\sum_{i=2}^n{a^i((i-1)^k-i^k)}\) 右边直接二项式展开 然后 交换求和顺序可得. \((a-1)f(k)=n^k\cdot a^{n+1}-a+\sum_{j=0}^{k-1…
题意:给你\(n\)个数,首先判断它们是否全都__两两互质__.然后再判断它们是否全都互质. 题解:判断所有数互质很简单,直接枚举跑个gcd就行,关键是第一个条件我们要怎么去判断,其实我们可以对所有数进行质因数分解,然后判断它们有无共同的质因子,如果有,那么就说明一定至少有一对数它们不是互质的,这样的话复杂度也在可接受的范围内. 代码 int n; int a[N]; bool st[N]; bool check(int x){ for(int i=2;i<=x/i;++i){ if(x%i==…
感悟:这又是zimpha巨出的一场题,然后04成功fst(也就是这题) 实际上还是too young,要努力增加姿势, 分析:直接枚举这些数不好枚举,换一个角度,枚举x*d,也就是d的另一个乘数是多少 显然  x<=min(d,(n-1)/d),x还得是质数,最后发现x必须小于d的最小因子 然后预处理10w以内的素数,然后每次先得到k=min(d,(n-1)/d),然后看d最小因子是否小于k 这题的关键就在找d的最小因子,我是暴力找的(然后碰上全是大素数就t了) 实际上当d是大素数的时候,k很小…
和上一题一样,把平方因子除去,然后对应的数就变成固定的 #include <cstdio> #include <iostream> #include <algorithm> #include <cstring> using namespace std; typedef long long LL; ; const int INF=0x3f3f3f3f; ],cnt; void getprime(){ ]; memset(v,,sizeof(v)); ;i*i&…
把所有数的立方因子除去,那么一个数可以和它组成立方的数是确定的,统计就行 #include <cstdio> #include <iostream> #include <algorithm> #include <cstring> #include <cmath> using namespace std; typedef long long LL; ; const int INF=0x3f3f3f3f; ],cnt; void getprime()…
题目链接:http://www.bnuoj.com/bnuoj/problem_show.php?pid=29365 首先排序,然后维护一个后缀,等差求下和就可以了.. //STATUS:C++_AC_2090MS_1716KB #include <functional> #include <algorithm> #include <iostream> //#include <ext/rope> #include <fstream> #inclu…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4627 对n除个2,然后考虑下奇偶... //STATUS:C++_AC_15MS_228KB #include <functional> #include <algorithm> #include <iostream> //#include <ext/rope> #include <fstream> #include <sstream>…
Leftmost Digit Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Problem Description Given a positive integer N, you should output the leftmost digit of N^N.   Input The input contains several test cases. The first l…
Big Number Problem Description In many applications very large integers numbers are required. Some of these applications are using keys for secure transmission of data, encryption, etc. In this problem you are given a number, you have to determine th…