鱼C论坛

 找回密码
 立即注册
12
返回列表 发新帖
楼主: chenwhccc

求助求助 k型好数列

[复制链接]
 楼主| 发表于 2021-11-21 14:27:32 | 显示全部楼层
jhq999 发表于 2021-11-21 13:09
看看这个思路怎么样
末位淘汰制,直到大家整除的数量一样,且数量=剩下的-1

😰😰😰😰
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-11-21 16:04:18 | 显示全部楼层
本帖最后由 jhq999 于 2021-11-21 16:18 编辑

又想错了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-11-21 16:21:27 | 显示全部楼层

我出答案了 但是需要优化一下 这个怎么发图片啊?我发给你看看
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-11-21 17:16:04 | 显示全部楼层
本帖最后由 jhq999 于 2021-11-21 17:21 编辑
chenwhccc 发表于 2021-11-21 16:21
我出答案了 但是需要优化一下 这个怎么发图片啊?我发给你看看

发代码啊!
给我一个实例,自己想实例验证太麻烦了,不知道做的对不对

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-11-21 17:26:10 | 显示全部楼层
jhq999 发表于 2021-11-21 17:16
发代码啊!
给我一个实例,自己想实例验证太麻烦了,不知道做的对不对

能加一下QQ吗 这个网站我不知道怎么发
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-11-21 17:39:24 | 显示全部楼层
本帖最后由 jhq999 于 2021-11-21 17:40 编辑
chenwhccc 发表于 2021-11-21 17:26
能加一下QQ吗 这个网站我不知道怎么发


你是用手机还是PC,pc直接按
红圈里的<>,把代码复制到出现的对话框里
输出实例和答案也如此操作
无标题.png
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-11-21 17:39:29 | 显示全部楼层
jhq999 发表于 2021-11-21 17:16
发代码啊!
给我一个实例,自己想实例验证太麻烦了,不知道做的对不对

#include <stdio.h>
int main()
{
        int n,k,i,j,a=0;
        long A[100001],b[100001];
        int a1=0,a2=0,a3=0;
        scanf("%d %d",&n,&k);
        for(i=0;i<n;i++)
        {
                scanf("%d",&A[i]);
        b[i+0]=A[i+0]%k;
        if(b[i+0]==0)
        {
                a1++;
                }
            if(b[i+0]==k*(1/2))
                {
                        a2++;
                }
                if(a3=0)
                for(j=i-1;j<n;j--)
                if(b[i+0]+b[j+0]==k)
                {
                        a3=1;
                }
        }
   
        if(a1>a2)
          a=a1;
        else
          a=a2;
        if(a>=2)
          printf("%d",a);
        else
           if(a3==1)
              printf("2");
           else
              printf("-1");

        return 0;
       
}
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-11-21 17:40:03 | 显示全部楼层
jhq999 发表于 2021-11-21 17:16
发代码啊!
给我一个实例,自己想实例验证太麻烦了,不知道做的对不对

这个答案能运行出来但是 时长很长 需要优化
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-11-21 17:42:52 | 显示全部楼层
本帖最后由 jhq999 于 2021-11-21 17:44 编辑
  1. #include <stdio.h>
  2. int main()
  3. {
  4.         int n,k,i,j,a=0;
  5.         long A[100001],b[100001];
  6.         int a1=0,a2=0,a3=0;
  7.         scanf("%d %d",&n,&k);
  8.         for(i=0;i<n;i++)
  9.         {
  10.                 scanf("%d",&A[i]);
  11.         b[i]=A[i]%k;
  12.         if(b[i]==0)
  13.         {
  14.                 a1++;
  15.                 }
  16.             if(b[i]==k*(1/2))
  17.                 {
  18.                         a2++;
  19.                 }
  20.                 if(a3=0)
  21.                 for(j=i-1;j<n;j--)
  22.                 if(b[i]+b[j]==k)
  23.                 {
  24.                         a3=1;
  25.                 }
  26.         }
  27.    
  28.         if(a1>a2)
  29.           a=a1;
  30.         else
  31.           a=a2;
  32.         if(a>=2)
  33.           printf("%d",a);
  34.         else
  35.            if(a3==1)
  36.               printf("2");
  37.            else
  38.               printf("-1");

  39.         return 0;
  40.       
  41. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-11-21 17:47:04 | 显示全部楼层

这个是优化之后的吗?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-11-21 17:50:14 | 显示全部楼层
chenwhccc 发表于 2021-11-21 17:47
这个是优化之后的吗?


这是你的,我给你改改,你看对不对,发个例子过来
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-11-21 17:54:20 | 显示全部楼层
输入5 3
1 2 3 3 6
输出3
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-11-21 18:03:42 | 显示全部楼层
  1. #include <stdio.h>
  2. int main()
  3. {
  4.         int n,k,i,j,a=0;
  5.         long A[100001],b[100001];
  6.         int a1=0,a2=0,a3=0;
  7.         scanf("%d %d",&n,&k);
  8.         for(i=0;i<n;i++)
  9.         {
  10.                 scanf("%d",&A[i]);
  11.         b[i]=A[i]%k;
  12.         if(b[i]==0)
  13.         {
  14.                 a1++;
  15.                 }
  16.             if(b[i]==k/2)
  17.                 {
  18.                         a2++;
  19.                 }
  20.                 if(a3==1)
  21.                 continue;
  22.                 for(j=i+1;j<n;j++)
  23.                 if(b[i]+b[j]==k)
  24.                 {
  25.                         a3=1;
  26.                 }
  27.         }
  28.    
  29.         if(a1>a2)
  30.           a=a1;
  31.         else
  32.           a=a2;
  33.         if(a>=2)
  34.           printf("%d",a);
  35.         else
  36.            if(a3==1)
  37.               printf("2");
  38.            else
  39.               printf("-1");

  40.         return 0;
  41.       
  42. }
  43. 一直无法优化
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-11-21 18:28:38 | 显示全部楼层


8 7
1 3 5 7 9 11 13 15
这个结果是-1出错
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-11-21 18:34:26 | 显示全部楼层
jhq999 发表于 2021-11-21 18:28
8 7
1 3 5 7 9 11 13 15
这个结果是-1出错
  1. #include <stdio.h>
  2. int main()
  3. {
  4.         int n,k,i,j,a=0;
  5.         long A[100001],b[100001];
  6.         int a1=0,a2=0,a3=0;
  7.         scanf("%d %d",&n,&k);
  8.         for(i=0;i<n;i++)
  9.         {
  10.                 scanf("%d",&A[i]);
  11.         b[i]=A[i]%k;
  12.         if(b[i]==0)
  13.         {
  14.                 a1++;
  15.                 }
  16.             if(k%2==0)
  17.                         if(b[i]==k/2)
  18.                 {
  19.                         a2++;
  20.                 }
  21.                 if(a3==1)
  22.                 continue;
  23.                 for(j=i-1;j>=0;j--)
  24.                 if(b[i]+b[j]==k)
  25.                 {
  26.                         a3=1;
  27.                 }
  28.         }
  29.    
  30.         if(a1>a2)
  31.           a=a1;
  32.         else
  33.           a=a2;
  34.         if(a>=2)
  35.           printf("%d",a);
  36.         else
  37.            if(a3==1)
  38.               printf("2");
  39.            else
  40.               printf("-1");

  41.         return 0;
  42.       
  43. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-11-21 18:34:58 | 显示全部楼层
chenwhccc 发表于 2021-11-21 17:54
输入5 3
1 2 3 3 6
输出3

这是对的  你能看看帮我改改吗  或者其他方法
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-11-21 18:51:03 | 显示全部楼层
本帖最后由 jhq999 于 2021-11-21 19:15 编辑


7 11
1 3 5 7 9 11 13 15
2

可以了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-4-25 13:17

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表