OpenJudge 7384(分成互质组)

应hfu要求,近几日整理搜索专题的内容,无意中翻出了一年前死活A不掉的一道不可做题(当时觉得)。看着自己的代码风格变化天翻地覆,无奈感叹时间飞逝。。。算了少矫情管他的先A了再说(ง •̀_•́)ง

先附上一年前WA(8/10)的代码

#include<stdio.h>
int n,divide[15][10],sum[15]={0},t,a[15],num1,ans=0;
int prime(int a,int b)
{
    if (a==b) return 0;
    for (int s=2;s<=a/2;s++)
      if (a%s==0&&b%s==0) return 0;
    return 1;
}
void f(int p,int q)
{
    if (ans!=0) return ;
    if (num1==n) 
    {
        ans=q;
        return ;
    }
    int i;
    for (i=1;i<=q;i++)
    {
        int j;
        for (j=1;j<=sum[i];j++)
          if (prime(a[p],divide[i][j])==0) break;
        if (j==sum[i]+1)
        {
            divide[i][sum[i]+1]=a[p];sum[i]++;num1++;
            for (int k=1;k<=q-1;k++)
              for (int b=1;b<=q-k;b++)
              if (sum[b]<sum[b+1])
              {
                for (int h=1;h<=sum[b+1];h++)
                {
                    t=divide[b][h];divide[b][h]=divide[b+1][h];divide[b+1][h]=t;
                } 
                t=sum[b];sum[b]=sum[b+1];sum[b+1]=t;
              }
            break;
        } 
    }
    if (i==q+1)
    {
        divide[q+1][1]=a[p];sum[q+1]++;num1++;
    }
    if (i==q+1) f(p+1,q+1);
    if (i<q+1) f(p+1,q);
}
int main()
{
    scanf("%d",&n);
    for (int i=1;i<=n;i++)
      scanf("%d",&a[i]);
    divide[1][1]=a[1];sum[1]=1;num1=1;
    f(2,1);
    printf("%d",ans);
    return 0;
}

再来看看一年后的今天1A的代码

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
int n;
int a[12],cnt=0,mn=12;
int gcd(int a,int b) {
    return !b?a:gcd(b,a%b);
}
vector<int> G[12];
void dfs(int p) {
    if (p>n) {mn=min(mn,cnt);return ;}
    for (int i=1;i<=cnt;++i) {
        bool f=true;
        for (int j=0;j<G[i].size();++j)
            if (gcd(a[p],a[G[i][j]])^1) {f=false;break;}
        if (f) {
            G[i].push_back(p);
            dfs(p+1);
            G[i].pop_back();
        }
    }
    ++cnt;
    G[cnt].push_back(p);
    dfs(p+1);
    G[cnt].pop_back();
    --cnt;
}
int main() {
//  freopen("OJ 7384.in","r",stdin);
    scanf("%d",&n);
    for (int i=1;i<=n;++i) scanf("%d",&a[i]);
    dfs(1);
    printf("%d\n",mn);
    return 0;
}
7384城市公交网查询系统是一个以asp+access进行开发的公交查询系统。 后台功能说明(大部分功能新加) 1.线路列表 显示所有线路以及该线路ID、路说明,线路经过站点,还有该线路更名和删除入口 2.站点列表 显示所有站点以及该站点ID、经过该站点的线路,还有该站点更名和删除入口 3.增加线路 增加线路的同时,对该线路经过的站点如果存在更新,不存在就增加,同时更新对应的站点ID数 认真填写:"-站点1-站点2-...-站点N-"。也就是站点间-隔开,站点名称不可出现分隔符-。 4.增加站点 只要增加线路即可,详细填写线路经过的站点,就无需另外增加站点 5.删除线路 删除线路记录的同时,更新该线路经过的站点,同时删除只有该线路经过的站点 6.删除站点 删除站点记录的同时,更新该站点经过的线路,同时删除只有经过该站点的线路(多次删除后会有这个情况) 7.线路更名 更新线路表的名称和说明的同时,更新所有站点表内该线路的名称 8.站点更名 更新站点表的名称的同时,更新所有线路表内该站点的名称 9.站点合并 删除源站点,更新目标站点,更新所有线路 10.更新线路经过站点 直接更新线路经过站点,不用删后再加.你也可以删除线路后增加即可。 11.全面检查 一键检查数是否正确并更正。或者从初始数据直接生成你网站需要的数据库。 前台功能说明 1.公交换乘查询,支持直达及二次以内公交换乘查询,显示最新查询记录。 2.公交线路查询,支持模糊查询自动提示,显示最新查询记录。 3.公交站点查询,支持模糊查询自动提示,显示语音相近的站点。 4.搜索查询ajax即时提示。关键词加红,视觉效果很好。 搜索提示支持拼音查询"火车站"="huochezhan", 搜索提示支持简拼查询"火车站"="hcz", 搜索提示支持模糊查询"货车"="火车", 搜索支持拼音模糊查询"ch"="c"..... 5.首页公交换乘查询最新查询记录 6.首页公交线路查询最新查询记录 7.首页公交站点查询最新查询记录 8.换乘有经过多少站提示(以上可以通过提供的网址在线体验) 9.全站实现数字化参数传递,方便搜索引擎收录以及网友复制。 10.简单设置即可支持在任意目录运行 11.使用更加美观的页面风格,特别是搜索框更加漂亮 12.换乘算法计算经过站点数并按站点数从低到高排列 13.在提交查询直接(不跳转)进入数字ID参数的页面。 使用和修改 1.广告修改请打开css目录下ad开头的js文件。 2.设置请记事本打开admin/conn.asp index.asp suggest.asp修改即可。 3.后台可以任意更改目录名称,增加网站安全性能 4.其他的见压缩包内说明 注意:如iis无法使用,请使用netbox等集成环境进行测试。 7384城市公交网查询系统 更新日志: 时隔五年,特作大量更新(2016.08.01) 1. 纠正了几个JS方面的小BUG。 2. 后台功能大更新(见后面,功能大更新)。 3. 使用说明更详细。
运行环境: ASP/Access 软件大小: 73kb 该微信息发布系统只有72KB大小,非常简洁,希望你喜欢。 经过多日反复改进,增加了分类,并可以在OPERA,firefox,360,IE8等正常显示。 另外对数据库重新设计制作。以及页面JS需要调用的ID名称都转小写了。 V2.8 说明 1. 会员系统完整 包含完整的会员系统:注册,邮件验证激活,登录,邮件找回密码,修改密码。验证码验证,密码MD5加密。 2. 前台展示系统 简单而整洁,页面效果自认为很好,只由列表页和展示页成。首页集成信息搜索功能。 ajax载入联系方式,载入接口post方式获得,并且防止外站调用。 如果浏览器不支持JS,也可以点击按钮POST显示联系方式。 展示页右侧是根据标题模糊匹配的相关职位信息。 还有增加了分类功能:发布信息修改信息等。 3. 信息发布系统 后台,先完善联系信息后才可以发布和管理信息。邮件验证过的可以直接发布显示,邮件验证没有通过的,能显示,但排在最后。 JS特效验证,体验效果极佳。 4. 信息管理系统 用户可以自己设置信息是否显示,编辑联系信息。另外,管理员设置的五个状态不同的操作权限。 删除,不可以任何编辑; 发回修改,只能修改; 审核中,前台显示在最后页,并有修改。 审核通过,有刷新时间,不能修改。 管理员推荐,可以刷新时间,不能修改。 5.管理员拥有信息管理和修改,用户资料的操作等权限,以及分类管理。 6.内有根据手机号码归属地来自动审核的代码,以及根据电话号码显示是否外地号码的代码,供学习. 7.已对页脚以及搜索等部件用SUB调用方便修改,更多体验请下载测试或者访问展示网址。 前台和后台帐号admin@ewuyi.net 密码253252545 使用前请修改config.asp的各项参数,使用方正常
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值