Fancy Mouse
- -|||
摘要: 先用不定积分求出那个v=t2的,s=t3/3。然后列一个方程求根了。三次方程有求根公式,但是偶还米学到,所以就用二分叠代来求这个根了~ #include#includeusing namespace std;double f(double a,double k,double x);int main(){ double min,max,a,b,t,i; while(cin>>a>>b) ... 阅读全文
posted @ 2005-10-22 02:44 Fancy Mouse 阅读(332) 评论(1) 推荐(0)
摘要: 有质因子个数超过4个(可以相同)的就是牛数,否则就是弱数 #include#includeusing namespace std;int IsNiu(long n);int main(){ long n; while(cin>>n) { if(IsNiu(n)) cout1;} 阅读全文
posted @ 2005-10-22 02:32 Fancy Mouse 阅读(343) 评论(1) 推荐(0)
摘要: 问题的本质是对于4个数组,每一个数组求一个分拆使两部分差最小。典型的DP。不过当时做的时候DP还学得不咋地,所以还是用搜索的办法~~还好也ac了 #includeusing namespace std;int data[20],sum,min;void DFS(long item,int items,int curmin);int main(){ int s[4],i,j; long ... 阅读全文
posted @ 2005-10-22 02:29 Fancy Mouse 阅读(396) 评论(1) 推荐(0)
摘要: 基本思路是把每一个字符(1或0)看作一棵2叉树的叶结点,然后一层一层向上合并。合并规则是:如果两个都是"A",那合并为"A";两个都是"B"则合并为"B";否则就是"C"然后追加这两个字符串 在实现的过程中可以用一个队列来代替。初始化的时候把所有字符当作字符串塞进去,然后每次取出两个,处理后塞进去一个。可以证明,由于基因编码长度为2^k,因此每次取出的两个对应的原基因编码长度必定相等(就是不存在跨... 阅读全文
posted @ 2005-10-22 02:18 Fancy Mouse 阅读(336) 评论(1) 推荐(0)
摘要: 这题略带一些技巧。注意有5因子的数的处理。可以发现乘一个5与乘一个8的效果相同。于是我们对于每一个含有5因子的数在乘的时候做一下处理即可~ #includeusing namespace std;const int N = 101;const int a[10] = {1,1,2,6,4,4,4,8,4,6};int Positive(int n[N]);void DivideFive(int n... 阅读全文
posted @ 2005-10-22 02:09 Fancy Mouse 阅读(322) 评论(1) 推荐(0)
摘要: 两条航线交叉的充要条件是x1>x2,y1using namespace std;const int MaxN = 2004;typedef struct harbor{int A,B;}harbor;void Sort(harbor s[MaxN],int harbors);int main(){ harbor s[MaxN]; int DP[MaxN]; int harbors... 阅读全文
posted @ 2005-10-22 01:56 Fancy Mouse 阅读(285) 评论(1) 推荐(0)
摘要: 只要两个数加法不产生进位就能满足题意。对于首位来说,可以有8*9/2=36种选数方式(因为首位不为0),对于其他位来说,可以有9*10/2=55种选数方式,乘法原理以后,剩下来的就是大数乘法和输出了。 #includeusing namespace std;const int MAX = 100;class Num{public: Num(int n); Num operator *(... 阅读全文
posted @ 2005-10-22 01:50 Fancy Mouse 阅读(285) 评论(1) 推荐(0)
摘要: 要注意该函数mod7的余数一定是循环的。设法求出循环节长度,并且保留一个完整的循环节,程序接下来就没问题了~ #includeusing namespace std;const int N = 7;int loop;int f[55];void sFibonacci(int a,int b);int sFibonacci(long n);int main(){ int a,b; lon... 阅读全文
posted @ 2005-10-22 01:46 Fancy Mouse 阅读(305) 评论(1) 推荐(0)
摘要: 这题……noip普及组原题的数据规模1000,太简单了。这里被弄到了3000000……从oi到oj的提升哈~先要解决算法的问题。很容易得出f(x)的递推式f(0)+f(1)+f(2)+...+f(x/2)。但是,如果就照这个算的话,tle~~O(n^2)的复杂度,对于3000000的数据,能在1秒出解就……于是要换个思路。我们计s(x)=f(0)+f(1)+...+f(x)。这样,f(x)=s(x... 阅读全文
posted @ 2005-10-22 01:42 Fancy Mouse 阅读(364) 评论(1) 推荐(0)
摘要: 典型的DP,开一个数组,第i个元素记录原字符串中以第i个字符结束的最小划分数。d[i] = min{d[j] + 1},0#includeusing namespace std;const int MaxString = 256;class Dictionary{public: Dictionary(int word); int Find(char* word,int length);... 阅读全文
posted @ 2005-10-22 01:29 Fancy Mouse 阅读(392) 评论(1) 推荐(0)
摘要: 寻找四塔函数g(x)的递推式。我们将普通的3塔,即Hanoi塔问题的函数式记作f(x),易得f(x)=2^x-1。我们设一开始把x块东西中的a块放到第二个柱子上,这步用了g(a)次,然后,接下来x-a块放到第四个柱子上,由于只有3个柱子可以用,因此这步用了f(x-a)次。然后再把a块移过去用了g(a),所以总共消耗2*g(a)+f(x-a),所以g(x) = min{2*g(a)+f(x-a)},... 阅读全文
posted @ 2005-10-22 01:17 Fancy Mouse 阅读(299) 评论(1) 推荐(0)