新的一周第一天开始了
8点半正常签到 然后偷偷又睡了
11点起床 吃饭
11点半 看博客 看了好久突然想起昨天的一个题目
#include<stdio.h>
#include<string.h>
int a[10000003+1];
int fun(int n,int m,int x,int y)
{
for(int i=x;i<=xn;i+=x)
{
a[i]=1;
}//跑完所以n的倍数
int count=0;
for(int i=y;i<=xn;i+=y)
{
if(a[i]==0)
{
count++;
a[i]=1;
}
}
count=m-count;
if(count>=1)
{
int i;
for(i=y;i<=10000003+1;i+=y)
{
if(a[i] == 0 ) count–;
if(count==0)break;
}
return i;
}
return nx;
}
int main()
{
int n;
int m;
while(~scanf("%d%d",&n,&m))
{
memset(a,0,sizeof(a));
int ans1=2n;
int ans2=3m;
if(2n>3*m)printf("%d\n",fun(n,m,2,3));
else printf("%d\n",fun(m,n,3,2));
}
}
上面这个代码跑表类似素筛竟然过了6个样例 很吓人 但是还是又漏洞 这个在一般情况下是没问题的 但是当3m大时 并且2n到3m中间跑完2的倍速 之后 还剩下一个2 并且 3m刚好是2的倍数时 应该让3占这位置 然后在加一个2 这属于我这个代码的极端情况 (哈哈看不懂也没关系)
因为我这个代码本来就错的 小结一下 以后不能死磕题目了特别是测试 呜呜呜
还有还有 代码要规范
大哥的
对了 今天开始树这种数据结构了的学习 还没有动手实际操作
但是看了一些视频 发现 上面红黑书 二叉数啊 平衡二叉树啊 各种树先生都来了 看来得慢慢学了 现在得和同学聚餐了!!!拜拜