zoukankan      html  css  js  c++  java
  • 2019年2月18日训练日记

    今天的题目也是很久之前的:

    数假货进阶
    [字符串操作]
    题目大意:
    给定字符串,任意位置最多添加n个字符‘j’,m个字符‘h’,求这个字符串最多包含多少个jh;
    思路分析:
    1输入数据
    2转换规则:使用j/h的规则
    [已有的jh] [成半的j/h] [没有使用完的j/h];
    3输出数据:

    代码实现:

    int n,m,a,b,ans;
    char ch[20005];
    int main()
    {
        while(~scanf(“%d%d”,&n,&m)  // n个 j,m个h
        {
            ans=a=b=0;		
            scanf(“%s”,ch);	//输入字符串
            for(int i=0;i<strlen(ch);i++)     //strlen()、<
            {
                if(i+1<strlen(ch)&&ch[i]=='j'&&ch[i+1]=='h')
                {			//现成假货jh
                    ans++;
                    i++;
                }
                else if(ch[i]==‘j’) a++; //单身的j/h各有多少捏?
                else if(ch[i]=='h') b++;
            }
     // what’s min(a,m) ?
            ans+=min(a,m)+min(b,n);
            //是否还有剩余的j/h没有使用?
            n-=b;
            m-=a;
            if(n>0&&m>0)       //有剩余的
            {
                ans+=min(n,m);	
    		//what’s min()?
            }
            printf("%d
    ",ans);
        }    
    }
    

    三连击
    题目大意: 将1~9共九个数分成三组,分别组成三个三位数且使这3个三位数构成1:2:3的比例,试求出所有满足条件的3个三位数。
    思路分析:
    1确定数据范围
    2求满足条件的数:
    [九重循环?] [三重循环?][一重循环?]
    3输出数据

    代码实现:

    int pan(int a,int b){     //what’s 函数
        int r[4],s[4];
        r[1]=a%10;  r[2]=(a/10)%10; r[3]=a/100;
        s[1]=b%10;  s[2]=(b/10)%10; s[3]=b/100;
        //r[]、s[] a,b的每一位的值
        if(r[1]==r[2]||r[2]==r[3]||r[1]==r[3])
            return 0;
        if(s[1]==s[2]||s[2]==s[3]||s[1]==s[3])
            return 0;
         //不与自身相同   
        for(int i=1;i<=3;i++)
            if(r[i]==0) return 0;
        for(int i=1;i<=3;i++)
            if(s[i]==0) return 0;
        //不含有0
        for(int k=1;k<=3;k++){
            for(int j=1;j<3;j++)
                if(s[k]==r[j])  return 0;
        }  //两数没有重复数值
        return 1;
    	int main(){
        int a,b,c;
        for(int i=123;i<=329;i++){	//why 范围?
            a=i;    b=a*2;  c=a*3;
            if(pan(a,b)==1&&	          //三数互不相同
                pan(b,c)==1&&
                pan(a,c)==1){
                cout<<a<<" "<<b<<" "<<c<<endl;
            }
        }
    }
    

    概率+最大公约数求法

    #include<bits/stdc++.h>
    using namespace std;
    int gcd(long m,long n)
    {
        while (n != 0)
        {
            long rem = m % n;
            m = n;
            n = rem;
        }
        return m;
    }
    int main()
    {
        int n;
        int a,b;
        int s1=1,s2=1;
        cin>>n;
        for(int i=0; i<n; i++)
        {
            cin>>a>>b;
            s1*=(b-a);
            s2*=b;
        }
        int s=gcd(s1,s2);
        if((s2-s1)/s==0)
        {
            cout<<0;
        }
        else
        {
            cout<<(s2-s1)/s<<"/"<<s2/s;
        }
    }
    

    素数问题
    1:

    for (int i=0; i<=n; ++i)
            a[i]=true;
             a[1]=false;
             for (int i=2; i<=sqrt(n); ++i)
            if (a[i]) 
                for (int j=2; j<=n/i; ++j)
                    a[i*j]=false;
    

    2:

    const ll N = 2000000;
    using namespace std;
    ll ordinary(ll n){  
      if(n==1)return 0;
        if(n==2)return 1; 
       for(int i=2;i<=sqrt(n);i++)  
             if(n%i==0)
    		 return 0; 
       return 1;
    }
    
  • 相关阅读:
    java 泛型 -- 泛型类,泛型接口,泛型方法
    android:id="@id/resid" , andorid:id="@+id/resid" 的区别
    Ubuntu16.04 + Win 10 双系统 时间同步,启动项顺序,NumLock指示灯常亮
    Linux 下 Console / 控制台 复制粘贴快捷键
    Android 快速开发框架:推荐10个框架:afinal、ThinkAndroid、andBase、KJFrameForAndroid、SmartAndroid、dhroid..
    JQuery的Ajax跨域请求的
    1031. Hello World for U (20)
    项目进阶 之 集群环境搭建(三)多管理节点MySQL集群
    Tomcatserverhttps协议配置简单介绍
    Unity3D
  • 原文地址:https://www.cnblogs.com/study-hard-forever/p/12130051.html
Copyright © 2011-2022 走看看