【算法竞赛入门经典】
文章平均质量分 67
paidream
这个作者很懒,什么都没留下…
展开
-
【3-1 开灯问题】
题目: 有n盏灯,编号为1~n.第一个人把所有的灯打开,第2个人按下所有编号为2的倍数的开关(这些灯将被关掉),第3个人按下所有编号为3 的倍数的开关(开着的灯关掉,关着的灯被打开),以此类推,一共有k个人,问最后有哪些灯开着?输入:n和k,输出开着的灯的编号。k 样列输入: 7 3 样列输出: 1 5 6 7#include#include#define MAXN 1000+原创 2013-06-01 09:51:50 · 628 阅读 · 0 评论 -
小学算术
#include#includeusing namespace std;int main(){ int a,b; int c,ans; while(scanf("%d%d",&a,&b)==2){ if(!a && !b) return ; ans=0; c=0; for(int i=9;i>=0;i--){ c=(a%10+b%10+c)>9?1:0;原创 2013-09-21 17:04:26 · 709 阅读 · 0 评论 -
【周期串5.1.3】
#include#includeusing namespace std;int main(){ char s[100]; scanf("%s",s); int n=strlen(s); for(int i=1;i<=n;i++) if(n%i==0){//判断是否被整除。 int ok=1; for(int j=i;j<n;j++) if(s[j]!=s[j%原创 2013-09-21 16:46:03 · 598 阅读 · 0 评论 -
【3.3 竖式问题】
竖式问题题目:找出所有形如abc*de(三位数乘以两位数)的算式,使得在完整的竖式中,所有数字都属于一个特定的数字集合。输入数字集合(相邻数字之间没有空格),输出所有竖式。每个竖式前应有编号,之后应有一个空行。最后输出解的总数。具体格式见样例输出(为了便于观察,竖式中的空格改用小数点显示,但你的程序应该输出空格,而非小数点)。样例输入:2357样例输出:原创 2013-06-01 03:25:39 · 754 阅读 · 0 评论 -
【3-1 蛇形填数】
在n*n的方阵里填入1,2,...,n*n (n例如n=4时的方阵为:10 11 12 1 9 16 13 2 8 15 14 3 7 6 5 4 #include#include#define MAXN 10int a[MAXN][MAXN];int main(){ memset(a,0,sizeof(a)); int原创 2013-06-01 09:59:04 · 667 阅读 · 0 评论 -
【阶乘之和】
#include#include#includeusing namespace std;int main(){ const int MOD=1000000; int i,j,n,s=0; cin>>n; if(n>25)//25的阶乘后面全部是零。所以。 n=25; for(i=1;i<=n;i++){ int factorial=1; for(j=1;j<=i;j+原创 2013-09-20 15:20:15 · 555 阅读 · 0 评论 -
【3n+1】
问题如下:(1)输入一个正整数n;(2)如果n=1则结束;(3)如果n是奇数,则n变为3n+1,否则n变为n/2;(4)转入第(2)步。#include#includeusing namespace std;int main(){ int n,count=0; cin>>n; while(n>1){ if(n%2==1) n=n*3+1;原创 2013-09-20 15:07:33 · 657 阅读 · 0 评论 -
【aabb 7744】
输出所有形如aabb的四位完全平方数(即前两位数字相等,后两位数字也相等)。第一种:#include#include#includeusing namespace std;int main(){ int a,b,n; double m; for(a=1;a<=9;a++) for(b=0;b<=9;b++){ n=a*1100+b*11; m=sqrt(n原创 2013-09-20 13:12:34 · 1167 阅读 · 0 评论 -
【层次遍历 P101】
#include#include#includeconst int MAXN=256;typedef struct TNode{ int have_value; int v; struct TNode *left,*right;}Node ;Node *root;Node * newnode(){ Node* u=(Node*)malloc(sizeof(Node)); i原创 2013-09-13 23:00:46 · 646 阅读 · 0 评论 -
【小球下落 P99】
/*二叉树(Binary Tree)的递归定义如下:二叉树要么为空,要么由根结点(root)、左子树(left subtree)和右子树(right subtree)组成,而左子树和右子树分别是一棵二叉树。注意,在计算机中,树一般是“倒置”的——根在上,叶子在下对于一个结点的k,它的左儿子、右儿子的编号分别是2k和2k+1则当I是奇数时,它往左走的第(I+1)/2个小球;当I是偶数时原创 2013-09-13 14:07:22 · 834 阅读 · 0 评论 -
算法竞赛入门经典P91铁轨
#include#includeusing namespace std;const int MAXN=1000+10;int n,target[MAXN];int main(){ while(scanf("%d",&n)==1){ stack s; int A=1,B=1; for(int i=1;i<=n;i++) scanf("%d",&target[i]);原创 2013-09-12 22:34:35 · 1119 阅读 · 0 评论 -
算法竞赛入门经典P89 卡片游戏
#include#include#includeusing namespace std;queue q;int main(){ int n; scanf("%d",&n); for(int i=0;i<n;i++) q.push(i+1); while(!q.empty()){ printf("%d ",q.front()); q.pop(); q.push(q.原创 2013-09-12 22:32:02 · 787 阅读 · 0 评论 -
【3-3最长的回文子串】
输入一个字符,求出其中最长的回文子串。子串的含义是:在元串中连续出现的字符串片段。回文的含义是:正看和倒看相同,如abba和yyxyy,在判断时候应该忽略所有的空格和标点符号,且忽略大小写,但输出应该保持原样,输入的字符长度不超过5000,且占据单独一行,输出最长的回文子串如有多个,输出,起始位置最靠左的样例输入:Confuciuss say:Mandam,I ˊm Adam.样例输出原创 2013-06-02 23:10:17 · 628 阅读 · 0 评论 -
【5.4.2 因子和阶乘】
输入正整数n(2样例输入:553样例输出:5! = 3 1 1 53! = 49 23 12 8 4 4 3 2 2 1 1 1 1 1 1 1 [分析]因为a^m * a^n = a^(m+n),所以我们只需把所有素因子对应的指数累加起来 。注意,n#include#includeint is_prime(int n){ //素数判断。 for(in原创 2013-06-06 10:30:25 · 756 阅读 · 0 评论 -
【Cantor 的数表 5.4.1】
【题目】题目描述如下数列,前5项分别是1/1,1/2,2/1,3/1,2/2……。输入n,输出第n项。1/1 1/2 1/3 1/4 1/52/1 2/2 2/3 2/43/1 3/2 3/34/1 4/25/1样例输入314712345样例输出2/12/41/459/99【算法】首原创 2013-06-04 23:53:43 · 821 阅读 · 0 评论 -
【5.3.2 字母重排】
输入一个字典(用******结尾),然后再输入若干单词。每输入一个单词w,你都需要在字典中找出所有可以用w的字母重排后得到的单词,并按照字典序从小到大的顺序在一行中输出(如果不存在,输出:()。输入单词之间用空格或空行隔开,且所有输入单词都由不超过6个小写字母组成。注意,字典中的单词不一定按字典序排列。样例输入:tarp given score refund only trap work原创 2013-06-03 23:17:34 · 713 阅读 · 0 评论