算法竞赛入门经典几个有意思的问题
来源:互联网 发布:剑三叽太捏脸数据 编辑:程序博客网 时间:2024/06/05 19:58
这一次写一下自己的解题办法,话说有的明明一眼就知道怎么做了,却敲了好长时间
1
用1,2,3……9组成三个三位数abc,def和ghi,每个数字恰好使用一次,要求abc:def:ghi为1:2:3,求出所有解。
这个就简单了,只要换一个想法,直接让这三个三位数为1:2:3就行了
int i,k,sum,lk,temp=1,flag=0;char shuzu[99];for(i=100;i<304;i++){ int m=i;int n=2*i;int j=3*i;flag=0; sprintf(shuzu,"%d%d%d",m,n,j);for(temp=0;temp<9;temp++){for(j=temp+1;j<9;j++){if(shuzu[temp]==shuzu[j]){flag=1;//如果则为1;}}//printf("%c",shuzu[temp]);//if(temp==8)printf("\n");}if(flag==0){printf("%d %d %d\n",m,n,3*m);}
注意i取值是100到304,这些数的三倍不能超过三位数范畴。
2
如果一个字符串可以由某个长度为K的字符串重复多次得到,则称该串以K为周期,例如abcabcabc以三为周期,输入一个长度不超过80的字符串,输出其最小周期。
思路大致是得到每个字符出现的个数,然后求它们的最大公约数,然后求这个字符串的长度,对公约数求整就OK了
char in[90],shuzu[90];int count[110],i=0,j=0,k=1,m=0,ch,flag=0,temp=0,stemp=0,sum=0;memset(shuzu,0,sizeof(shuzu));//此处可能产生bugmemset(count,0,sizeof(count));//全部1scanf("%s",in);shuzu[0]=in[0];for(ch=0;ch<strlen(in);ch++){for(j=0;j<i+1;j++){ if(in[ch]==shuzu[j]) {count[j]++;break;}if(j==i){shuzu[i+1]=in[ch];i++;}}}for(temp=0;temp<i;temp++){for(stemp=temp+1;stemp<i;stemp++){if(count[temp]>count[stemp]){int t;t=count[temp];count[temp]=count[stemp];count[stemp]=t;}}}for(k=count[0];flag==0;k--)//此处没考虑1的{for(m=0;m<i;m++){ if((count[m])%k!=0)break; if(m==i-1){flag=1;break;}//一定是偶数,最大公约数找到,然后余数相加}}for(m=0;m<=i;m++){sum+=count[m];}printf("%d\n",sum/(k+1));话说这个小程序被我写的好失败,这么长(ノ=Д=)ノ┻━┻
给大家一点借鉴
阅读全文
0 0
- 算法竞赛入门经典几个有意思的问题
- 算法竞赛入门经典 油田---经典的联通快问题
- 《算法竞赛入门经典》 7.5 倒水问题
- 算法竞赛入门经典-铁轨问题
- 算法竞赛入门经典 开灯问题
- 算法竞赛入门经典 竖式问题
- 算法竞赛入门经典 竖式问题
- 算法竞赛入门经典-开灯问题
- 几个有意思的算法
- 几个有意思的算法
- 算法竞赛入门经典
- 算法竞赛入门经典
- 算法竞赛入门经典--古老的密码
- 算法竞赛入门经典 第一章的练习题
- 算法竞赛入门经典 第一章的练习题
- 算法竞赛入门经典 下落的树叶
- 几个有意思的算法题
- 几个有意思的算法题
- JSON的简介和在Java中的使用
- QSerialPort,QSerialPortInfo使用
- Rstudio中配置环境实现动态报告
- Opencv: pointPolygonTest函数使用
- 泛型依赖注入
- 算法竞赛入门经典几个有意思的问题
- 面向对象加强1
- 【2011集训队出题】happiness
- 使用nutz进行简单的增删查改操作
- vue的理解
- CGTime CMTimeRange CMTimeMapping 小结
- python/folium绘制中国人口数量热力图(HeatMap)
- 数据结构实验之排序四:寻找大富翁__咳咳咳,还魂篇!!
- 魔方阵