zoukankan      html  css  js  c++  java
  • 8628 相亲

    Description

        在咱遥远破旧的小村庄,男女成婚仍是以古老的、传统的模式:相亲,合时辰八字,合得来则订婚,择日
    成亲。其中最忽悠的则是合时辰八字,话说是月老决定,实则是根据某条公式,算是否合得来。通过多年
    的明察暗访,终于让我知道合地辰八字的公式了。其规则如下:
    1、 根据某条公式将时辰八字转化成一个整数num, 为了方便起见,以后就用这个num表示该人的时辰八字。
    2、 如果男女双方的时辰八字之和等于一个给定的数sum,则称此对时辰八字合得来。否则相反。
    3、 如果时辰八字合不来的人结婚,会被抓去浸猪笼的,因为会被当成是对神的亵渎。
        如此可知,在咱们村一对男女可以结婚的概率是相当的小。现在你的任务是算出咱们村有多少对男女
    可以结婚?
    




    输入格式

    第一行输入一个整数T(1<=T<=10),表示样例的个数。
    接下来有T个样例,对于每一个样例,第一行输入两个整数n(0<n<10^5),sum(0<sum<=10^8), n 表示
    咱们村的人口数,sum 表示给定的和。接下来输入n个人的信息,每个人用两个整数来表示,其中前面一
    个表示性别sex(0表示女,1 表示男),后面一个表示其时辰八字num(0<=num<sum,且所有的num
    的值各不相同)。为了方便起见,n 个人的信息是按照每个人的num的递增顺序给出的。
    



    输出格式

    输出占一行,表示能结婚的男女对数。(注意:没有同性的可以结婚,咱国家不允许)



     

    输入样例

    1
    4 6
    0 2 1 3 0 3 1 4
    



     

    输出样例

    2

     思路:由于每个人的num是递增顺序给出的,对于男、女这两个序列,一个从上往下,一个从下往上,若满足和为sum,继续

    若  和>sum,从下往上的继续往上移动一个(从上往下的不动)

    若  和《sum,从上往下的继续往下移动一个(从下往上的不动)

    #include<stdio.h>
    #include<string.h>
    int a[100010],b[100010],c[100010];
    int main()
    {
    
        int i,j,k,t,t1,t2,num,n,count,T;
        scanf("%d",&T);
        for(i=1; i<=T; i++)//循环次数
        {
            j=k=t=1;
            count=0;
            scanf("%d%d",&n,&num);
            for(t=1; t<=2*n; t=t+2)//预处理,把1的存放在a,0存放在b
            {
                scanf("%d%d",&c[t],&c[t+1]);
                if(c[t]) a[j++]=c[t+1];
                else b[k++]=c[t+1];
            }
    
            t1=1;
            t2=k-1;
            while(t1<j&&t2>=1)//a下标从1开始,b从末尾开始(k-1)
            {
                if(a[t1]+b[t2]==num)
                {
                    count++;
                    t1++;
                    t2--;
                }
                else if(a[t1]+b[t2]>num)
                {
                    t2--;
                }
                else
                {
                    t1++;
                }
            }
            printf("%d
    ",count);
        }
        return 0;
    }
    View Code
  • 相关阅读:
    关于git你日常工作中会用到的一些东西
    require.context
    vue-cli3.0 使用postcss-plugin-px2rem(推荐)和 postcss-pxtorem(postcss-px2rem)自动转换px为rem 的配置方法;
    div实现富文本编辑框
    webpack-bundle-analyzer打包文件分析工具
    web页面调用支付宝支付
    ajax回调中window.open弹出的窗口会被浏览器拦截的解决方法
    Django 文件上传
    Django 序列化 前端通过ajax来获取数据库中的数据
    Django Form组件 基于源码的扩展
  • 原文地址:https://www.cnblogs.com/orchidzjl/p/4263436.html
Copyright © 2011-2022 走看看