摘要: 找一下规律。输出的时候注意格式,保留到小数点后三位。View Code 1 #include<iostream> 2 #include<iomanip> 3 using namespace std; 4 int main(){ 5 int n; 6 cout<<"# Cards Overhang"<<endl; 7 while(cin>>n){ 8 int i=1; 9 double sum=0;10 for(i=1;i<=n;i++)11 sum+=1.0/(2*i);12 co... 阅读全文
posted @ 2013-04-16 20:39 90后程序媛 阅读(375) 评论(0) 推荐(1) 编辑
摘要: 此题的思路就是:求出给出的数n的除本身以外的约数,然后加起来的sumif n>sum DEFICIENTif n<sum ABUNDANTif n==sum prefect当输入0的时候输出“END OF OUTPUT”同时程序结束这个题目还有一个需要注意的地方呢就是在输出的时候格式要注意,数字所占的长度为5,所以要用setw控制,并且头文件是#include<iomanip>代码如下 1 #include <iostream> 2 #include<iomanip> 3 using namespace std; 4 int main(int a 阅读全文
posted @ 2013-04-16 20:27 90后程序媛 阅读(144) 评论(0) 推荐(0) 编辑
摘要: 链接:http://acm.hdu.edu.cn/showproblem.php?pid=1213代码#include<stdio.h>#include<stdlib.h>#include<algorithm>#include<iostream>using namespace std;int p[1010];int getfather(int n){ while(n!=p[n]) n=p[n]; return n;}void Union(int x,int y){ int rootx=getfather(x); int rooty=getfath 阅读全文
posted @ 2013-04-16 19:49 90后程序媛 阅读(276) 评论(0) 推荐(0) 编辑
摘要: 【问题描述】若某个家族人员过于庞大,要判断两个是否是亲戚,确实还很不容易,现在给出某个亲戚关系图,求任意给出的两个人是否具有亲戚关系。规定:x和y是亲戚,y和z是亲戚,那么x和z也是亲戚。如果x,y是亲戚,那么x的亲戚都是y的亲戚,y的亲戚也都是x的亲戚。(人数≤5000,亲戚关系≤5000,询问亲戚关系次数≤5000)。数据输入:第一行:三个整数n,m,p,(n<=5000,m<=5000,p<=5000),分别表示有n个人,m个亲戚关系,询问p对亲戚关系。以下m行:每行两个数Mi,Mj,1<=Mi,Mj<=N,表示Ai和Bi具有亲戚关系。接下来p行:每行两个数 阅读全文
posted @ 2013-04-15 20:58 90后程序媛 阅读(370) 评论(1) 推荐(0) 编辑
摘要: 其实本题函数递归都给我们了。但是就是说,要用一般简单的函数的话,就会超时(我试过。)然后我参考了别人博客构造一个三维数组"int d[a][b][c]",用来记忆。真的用到的是后面“ if(d[a][b][c]) return d[a][b][c];”只要曾经算过得就可以记下了。减少了计算时间了!View Code #include <iostream>#include<cstdio>using namespace std;int d[21][21][21]; int w(int a,int b,int c){ if(a<=0||b<=0 阅读全文
posted @ 2013-04-11 20:27 90后程序媛 阅读(269) 评论(0) 推荐(0) 编辑
摘要: 贪心算法的适用的问题 贪心算法适用的问题必须满足两个属性: (1) 贪心性质:整体的最优解可通过一系列局部最优解达到,并且每次的选择可以依赖以前做出的选择,但不能依赖于以后的选择。 (2) 最优子结构:问题的整体最优解包含着它的子问题的最优解。 贪心算法的基本步骤 (1) 分解:将原问题分解为若干相互独立的阶段。 (2) 解决:对于每一个阶段求局部的最优解。 (3) 合并:将各个阶段的解合并为原问题的解。一、贪心算法之汽车加油问题(一) 问题描述 一辆汽车加满油后可以行驶N千米。旅途中有若干个加油站。指出若要使沿途的加油次数最少,设计一个有效的算法,指出应在那些加油站停靠加油。 给出N,并以. 阅读全文
posted @ 2013-04-08 20:30 90后程序媛 阅读(692) 评论(0) 推荐(0) 编辑
摘要: View Code #include <iostream>#include<string> using namespace std; int rec[25]; int main() { int a, b, n; rec[0] = rec[1] = rec[2] = 1; while( cin>>a>>b>>n&&a | b | n ) { int beg, end, flag = 0; for( int i = 3; i <= n && !flag; ++i ) { rec[i] = (... 阅读全文
posted @ 2013-04-02 20:44 90后程序媛 阅读(270) 评论(0) 推荐(0) 编辑
摘要: View Code #include<iostream>#include<cmath>using namespace std;int main(){ int ncase,ans;long long t; cin>>ncase; while(ncase--) { cin>>t;ans=0; while(t){ans++;t=t/2;} cout<<ans<<endl; } return 0;}题目大意:给定n个javabeans,每个box中分别有(1 2 3...n)个javabeans 。每次减去一个x。必须是大于... 阅读全文
posted @ 2013-04-02 20:23 90后程序媛 阅读(175) 评论(0) 推荐(0) 编辑
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=1262分析:本题需要找最相近的两个素数的和等于给我们的偶数。首先,判断素数的方法用一个函数,用到cmath的头文件另外,要找到最相近的两个素数,就从偶数的一半上下分别加减i;主程序中调用了函数,来输出素数。View Code #include <iostream>#include<cmath>using namespace std;int prime(int n){int j,k,flag; flag=1; k=sqrt(n); for(j=2;j<=k;j++) {if(n%j 阅读全文
posted @ 2013-04-02 20:04 90后程序媛 阅读(300) 评论(0) 推荐(0) 编辑
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=1161本题主要运用的就是大小写的转换;我写的代码:#include<iostream>#include <string>#include <ctype.h>using namespace std;int main(int argc, char *argv[]){ string a; char c; while( getline(cin,a)){ for(int i=0;i<a.length();i++) { c=a[i]; if(isupper(c)) c=tolow 阅读全文
posted @ 2013-04-02 19:40 90后程序媛 阅读(296) 评论(0) 推荐(0) 编辑