| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1620 人关注过本帖
标题:[原创]算法艺术与信息学竞赛-学习记录-程序(1)
只看楼主 加入收藏
卧龙孔明
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:59
帖 子:3872
专家分:684
注 册:2006-10-13
结帖率:100%
收藏
 问题点数:0 回复次数:5 
[原创]算法艺术与信息学竞赛-学习记录-程序(1)
/*算法艺术与信息学竞赛 试题1.2.3*/
请回答下面的问题,各题都恰有一个答案是正确的
(1)第一个答案B的问题是哪一个?
    (A)2    (B)3    (C)4     (D)5      (E)6
(2)恰好有两个连续问题的答案是一样的,它们是:
    (A)2,3  (B)3,4 (C)4,5 (D)5,6   (E)6,7
(3)本问题答案和哪个问题的答案相同
     (A)1     (B)2   (C)4    (D)7     (E)6
(4)答案是A的问题的个数是
     (A)0     (B)1    (C)2   (D)3     (E)4
(5)本题和哪个题答案相同
    (A)10     (B)9     (C)8   (D)7    (E)6
(6)答案是A的问题的个数和答案是什么的问题个数相同
    (A)B     (B)C    (C)D     (D)E   (E)以上都不是
(7)按照字母排序,本问题的答案和下一个问题的答案相差几个字母
    (A)4     (B)3    (C)2     (D)1    (E)0
(8)答案是元音字母的问题个数是
    (A)2     (B)3   (C)4      (D)5    (E)6
(9)答案是辅音字母的问题个数是
    (A)一个质数   (B)一个阶乘数(C)一个平方数(D)一个立方数(E)5的倍数
(10)本问题的答案是
   (A)A     (B)B    (C)C    (D)D      (E)E

/*经验:
  1.书写逻辑性强的程序首次书写时以准确为主,
  可以适当先减少优化量,待程序测试通过出正
  确解后再优化。
  2.注意可能性的排除,不要过分追求效率导致
  出现排除错误;同时要对必要的逻辑排除写完
  善(例如本程序最终出了4个解,其中前3个其
  实应该按照题意排除掉但本程序并没有,需要
  手工对此四个解进行验证,实现的并不完美)。
*/
#include<stdio.h>
#include<conio.h>
char s[11];
int dfs(int now)
{
    int i,j,k;
    int flag;
    int count;
    int c[5]={0};
    if(now==11)
    {
      i=1;
      while(s[i]!='b' && i<11) i++;
      if(i==(s[1]-'a'+2))
      {
        flag=0;
        for(i=1;i<10;i++)
          if(s[i]==s[i+1])
          {
            flag=1; break;
          }
        if(flag)
        {
          flag=0;
          if(i==(s[2]-'a'+2))
          {
            if((s[1]==s[3] && s[3]=='a') ||
               (s[2]==s[3] && s[3]=='b') ||
               (s[4]==s[3] && s[3]=='c') ||
               (s[7]==s[3] && s[3]=='d') ||
               (s[6]==s[3] && s[3]=='e'))
            {
              for(i=1;i<11;i++) c[s[i]-'a']++;
              if(c[0]==(s[4]-'a'))
              {
                if(s[5]==s[10-s[5]+'a'])
                {
                  if((c[s[6]-'a']==c[0]) ||
                     (s[6]=='e' && c[0]!=c[1] && c[0]!=c[2] && c[0]!=c[3] && c[0]!=c[4]))
                  {
                    count=s[8]-s[7];
                    if(count<0) count=-count;
                    if((s[7]-'a'+count)==4)
                    {
                      count=c[0]+c[4];
                      if((s[8]-'a'+2)==count)
                      {
                        count=10-count;
                        if((s[9]=='a' && (count==2 || count==3 || count==5 || count==7)) ||
                           (s[9]=='b' && (count==1 || count==2 || count==6)) ||
                           (s[9]=='c' && (count==1 || count==4 || count==9)) ||
                           (s[9]=='d' && (count==1 || count==8)) ||
                           (s[9]=='e' && (count==0 || count==5 || count==10)))
                        {
                          for(i=1;i<11;i++) printf("%c ",s[i]); printf("\n");
                        }
                      }
                    }
                  }
                }
              }
            }
          }  
        }
      }
      return;
    }
    for(i='a';i<'f';i++)
    {
      s[now]=i;
      dfs(now+1);
    }
    return;
}
int main(void)
{
    int i,j,k;
    dfs(1);
    printf("\nFINISH!\n");
    getch();
    return 0;
}

/*算法艺术与信息学竞赛 试题1.2.4*/
/*
经验:
  1.注意积累库函数,如floor()可以求不大于num的最大整数
  2.注意输入输出非整数时的输入输出格式
*/
#include<stdio.h>
#include<math.h>
#include<conio.h>
int main(void)
{
    double p,q;
    int n,m;
    double x=0;
    scanf("%lf%lf",&p,&q);
    p/=100;
    q/=100;
    do
    {
           x+=1;
           n=(int)(x*p+0.000001);
           m=(int)(x*q-0.000001);
    }while(m-n==0);
    printf("%.0lf",x);
    getch();
    return 0;
}

[[it] 本帖最后由 卧龙孔明 于 2008-1-30 11:51 编辑 [/it]]
搜索更多相关主题的帖子: 信息学 算法 艺术 竞赛 
2008-01-30 11:49
卧龙孔明
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:59
帖 子:3872
专家分:684
注 册:2006-10-13
收藏
得分:0 
这是第一次发
日后可能会陆续发一些算法学习(复习)记录程序

My Blog: www.aiexp.info
虽然我的路是从这里开始的,但是这里不再是乐土.感谢曾经影响过,引导过,帮助过我的董凯,飞燕,leeco,starwing,Rockcarry,soft_wind等等等等.别了,BCCN.
2008-01-30 11:55
雨中飞燕
Rank: 3Rank: 3
等 级:禁止访问
威 望:8
帖 子:2200
专家分:0
注 册:2007-8-9
收藏
得分:0 
很强大的题目!!!!!!!!!!
2008-01-30 12:46
killer_l
Rank: 2
等 级:新手上路
威 望:3
帖 子:1139
专家分:0
注 册:2007-5-25
收藏
得分:0 
还有这种题啊........

2008-01-30 14:05
快速回复:[原创]算法艺术与信息学竞赛-学习记录-程序(1)
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.037215 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved