随笔分类 -  数学——其他

摘要:250: (x/k)*3 + (x/3) = p 给出P和K,求满足的x最小的值,直接从1到3*P枚举即可 500:给定两个正数 N,M1 <= A <= N, 1 <= B <= M , SSR(A, B) = (sqrt(A)+sqrt(B))^2 求满足SSR(A, B)为整数的可能数;化简后可得SSR(A, B) = A + B + 2*sqrt(A)*sqrt(B);只要满足sqrt(A)*sqrt(B)为整数即可总的来说就两种情况:1:A和B都是可开方的数;2:都不是可开方的数,但是化简后的根号里面的数相同: sqrt(8) = 2*sqrt(2) 和 sq 阅读全文
posted @ 2013-01-22 11:46 E_star 阅读(312) 评论(2) 推荐(0) 编辑
摘要:题意:给你一个矩形的画布,此画布由‘B’和‘.’组成,画T次每次画的时候他的左上角的起始点是确定的几位(1,1),(2,2),(3,3)......(T,T); 在画的过程中可能会出现相互覆盖求画完T次后一共有多少个‘B’例{"..B","B..","BB."}3Returns: 10思路:假设矩形的长度为n次,开始我一直在思考覆盖完n次后减去多少,在第n次以后每一个减去的都一样了。不过这样会出现重复的减去,不对。我们只需要考虑在覆盖n个后第一个的总共剩下多少个没有被覆盖的。以后都是一样的了。最后我们只需要计算一下最后n-1个的数就可 阅读全文
posted @ 2012-12-02 10:04 E_star 阅读(226) 评论(0) 推荐(0) 编辑
摘要:http://codeforces.com/problemset/problem/233/B题意:x2 + s(x)·x - n = 0, 给出n的值,求x的值,这里s(x)表示x各位数字的和。思路:才开始我错误的认为x^2 + s(x)*x 是一个单调递增函数,于是分析x<10^9然后二分枚举log(10^9)即可,结果写完后样例都没过。原来这个函数不是单调函数10 = 110 9 = 162 所以非单调。一时蒙了。还是做的数学题目比较少吧,思路还不够开阔。这里我能够得到x<10^9那么s(x)< 10*9 = 90 我们只要枚举s(x) 然后得到一个普通的一元二 阅读全文
posted @ 2012-10-24 10:57 E_star 阅读(495) 评论(1) 推荐(0) 编辑
摘要:http://poj.org/problem?id=3070思路:这里n很大单纯的递推是O(N)会超时,所以要用矩阵快速幂优化;f(n) 1 1 f(1) = 的n-1次方 *f(n-1) 1 0 f(0)View Code #include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#include <cmath>#include <queue>#include <stack>#include <set>#in 阅读全文
posted @ 2012-09-19 10:03 E_star 阅读(331) 评论(0) 推荐(0) 编辑
摘要:http://poj.org/problem?id=2947题意:工人生产不同的部件需要不同的时间,最少需要3天最多需要9天。给出n种部件和m条记录,每条记录包括该工人生产部件的总数k和他开始生产时间和结束时间(只给出是周几,不给出具体时间),之后给出这K个部件跟的所属的种类。最后求出生产这n种部件分别所需要的时间。思路:高斯消元:例子来讲首先我们能够列出方程(x + y)%7 = 4;(2*x + y)%7 = 5;(x + 2*y)%7 = 0;这里直接套高斯消元模板就行,关键是处理%7的情况,我们先按[0,6]计算结果最后再处理到[3,9];View Code #include < 阅读全文
posted @ 2012-09-05 11:19 E_star 阅读(216) 评论(0) 推荐(0) 编辑
摘要:http://poj.org/problem?id=1026题意:给定长度为n的序列key[],key[i](表示第i个字符置换一次后跑到key[i]的位置)然后给出数字k以及字符串seq[],输出经过k次加密后的字符串,字符串的长度总是满足长度为n如果后边无字符用空格代替。每一次的加密过程为:例如 4 5 3 7 2 8 1 6 10 9,Hello Bob, 然后从左到右让字符串的每一个字符与一个数字对应:4 5 3 7 2 8 1 6 10 9H e l l o B o b ‘ ’ ‘ ‘假如加密后的到的新字符... 阅读全文
posted @ 2012-09-04 19:39 E_star 阅读(204) 评论(0) 推荐(0) 编辑
摘要:http://poj.org/problem?id=3270题意:给定N头牛的身高,要求你通过每次交换两头牛的位置使其按身高从小到大排序,身高各不相同。假设交换ai,aj两头牛的位置则花费的时间为ai + aj,求用最小的时间花费。思路:黑书P248详细解释。cost += sum + Min((k – 2) * ti, ti + (k + 1) * minn);前一个式子:sum + (k – 2) * ti,ti是所在置换群的最小值比如:8 4 5 3 2 7目标 2 3 4 5 7 8,里边有两个置换群(8 2 7)(4 3 5)(这里是每个置换都可以写成若干互不相交的循环的乘积(黑书P 阅读全文
posted @ 2012-09-03 21:18 E_star 阅读(247) 评论(0) 推荐(0) 编辑
摘要:http://poj.org/problem?id=1286题意:3种颜色对一个有n个顶点的圈着色,问有多少种不同的着色方法。对于通过旋转或者翻转得到的相同的着色视为一种;思路:Polya定理 设有n个对象,G是这n个对象上的置换群,用m种颜色涂染这n个对象,每个对象涂染一种颜色,问有多少种染色方案?一种染色方案在群G的作用下变为另一种方案,则这两种方案当作是一种方案。 方案数为因为这里的有旋转与翻转两种所以|G|的个数为2*n |G|表示置换群的个数View Code #include <iostream>#include <cstdio>#include <c 阅读全文
posted @ 2012-08-21 11:35 E_star 阅读(313) 评论(0) 推荐(0) 编辑
摘要:http://poj.org/problem?id=2115通过这道题有学习了一些新的数论知识,感觉很充实。哈哈。做这道题首先要理解:同于定理:http://baike.baidu.com/view/1490645.htm?fromTaglist这里主要运用了(2)同余有三种说法都是等价的,分别为: (1) a和b是模d同余的. a=b(mod d)这里的=是三道杠的。 (2) 存在某个整数n,使得a=b+nd . (3) d整除a-b.第二就是扩展欧几里德:日华的博客里面写的扩展欧几里德不错:给个链接:http://starry314.blog.163.com/blog/static/... 阅读全文
posted @ 2012-05-06 22:17 E_star 阅读(216) 评论(0) 推荐(0) 编辑
摘要:http://poj.org/problem?id=2506这道题和原来课本上的一个递推题相似,不过这里有了两种选择,2*2 和2*1f[n] = f[n-1] + f[n-2]*2 ;View Code #include <iostream>#include <cstdio>#include <cstring>#define maxn 1007using namespace std;int f[255][maxn];int tmp[maxn];//记录f[n-2]*2后的结果int len[maxn];//记录每个数的长度void muilty(int * 阅读全文
posted @ 2012-02-25 16:06 E_star 阅读(327) 评论(0) 推荐(0) 编辑
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=1021按常理计算f[n]的时候会出现越界。。所以利用模运算f[n]=(f[n-1]+f[n-2])%3=(f[n-1]%3+f[n-2]%3)%3;View Code #include <cstdio>#include <cstring>#include <iostream>using namespace std;long long f[1000002];void init(){ int i; f[0]=7;f[1]=11; f[0]%=3; f[1]%=3; for(i= 阅读全文
posted @ 2012-01-02 21:26 E_star 阅读(204) 评论(1) 推荐(1) 编辑
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=1018一天了,看不下数,坐不下题。。。唉。。终于a了一道了。。。求n!阶乘的数的位数。才开始我直接按大数阶乘处理。结果肯定超时。最后看了一下解题报告。原来这么简单,还是做得题少,没接触过。。第一种:log10(n!)=log10(1)+log10(2)+.....+log10(n);循环求和即可,注意最后要+1,因为log10(1)=0;所以要加上这个误差;View Code #include<iostream>#include<cmath>#include<cstdio> 阅读全文
posted @ 2012-01-02 18:45 E_star 阅读(269) 评论(0) 推荐(0) 编辑
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=1007一看题目就是一个很裸的最近点对。。暴力的做法是o(n^2)而对于o(nlogn)算法知识理论上理解了,但是还没实现过,好不容西写出来还是tle最后在gsb的指点下总算是A了。。汗。。#include <iostream>#include <cstdio>#include <algorithm>#include <cmath>const int max_s = 100007;using namespace std;const int M = 99999999 阅读全文
posted @ 2011-11-24 22:27 E_star 阅读(324) 评论(0) 推荐(0) 编辑
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=1097快速幂取模我理解就是将其幂不断的二分后往前推得过程,奇数的时候先分出一个来变成偶数。。。杭电怎么不认识long long了??改成__int64就对了。。#include <iostream>#include <cstdio>using namespace std;__int64 result(__int64 a,__int64 b,int m){ long long d,t; d=1; t=a; while (b>0) { if (b%2==1) ... 阅读全文
posted @ 2011-11-23 09:34 E_star 阅读(246) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示