zoukankan      html  css  js  c++  java
  • 2016年江西理工大学第一轮模拟考试

    第一题~这个就不用说了吧~拿计算器自己算一算,你就知道啦~

    第二题~要知道连续的数字公约数只有两个~要么就是它本身(a==b),要么就是1

    第三题~n*n-n+2 要推导过程可以看一下《组合数学》

    第四题,如果嫌那种跨月的计算麻烦的话,我们统一换成从1年1月1号计算,然后计算天数之差,大于等于7的统统放一个结构体里,然后排序就好~

     1 struct P
     2 {
     3     int year;
     4     int month;
     5     int day;
     6     string s;
     7 } He[1000],HeHe[1000];
     8 bool cmd(P x,P y)
     9 {
    10     if(x.year!=y.year)
    11     {
    12         return x.year<y.year;
    13     }
    14     else
    15     {
    16         if(x.month!=y.month)
    17         {
    18             return x.month<y.month;
    19         }
    20         else
    21         {
    22             if(x.day!=y.day)
    23             {
    24                 return x.day<y.day;
    25             }
    26         }
    27     }
    28 }

     第五题,学妹觉得()太完美,那么我们找出有多少组()就好了嘛~答案就是这个,因为()翻转一次就是不匹配的,不要担心()()翻转变成(()),我们))((不就得啦

    然后就是我讲的栈喽~

     1 while(~scanf("%d",&n))
     2     {
     3         while(n--)
     4         {
     5            int i,j;
     6            int sum1=0;
     7            int sum2=0;
     8            stack<char> q;
     9            string ss;
    10            cin>>ss;
    11            for(i=0;i<ss.length();i++)
    12            {
    13               if(ss[i]=='(')
    14               {
    15                   q.push(ss[i]);
    16               }
    17               else if(ss[i]==')'&&!q.empty())
    18               {
    19                   sum1++;
    20                   q.pop();
    21               }
    22            }
    23 
    24            cout<<sum1<<endl;
    25         }
    26     }

      第六题不得不说还有人用递归的,递归在其他地方没错,这里就明显傻逼了,每次递归我们都要算一次,耗时不说,我们没办法算出10^9的数据来~

    可以在程序先算出第1~20个位置的数列来,然后我们在保存数组里调用就好了,哦,还有~第15个数之后结果都是1.61803~所以没必要全算出来~

    const int N = 20;
    int f[N];
    
    int main(){
        f[0] = f[1] = 1;
        for (int i=2;i<N;++i){
            f[i] = f[i-1] + f[i-2];
        }
        int n;
        while (scanf("%d",&n)!=-1){
            if (n >= N) n = N-1;
            printf("%.5f
    ",f[n-1]/(double)f[n-2]);
        }

      第七题很多人都会的,跳过

    第八题,贪心,我们把最大的爱心加就好了,因为最少个数~幸好数据只有1000,冒泡也是可以的

    bool cmp(int x,int y)
    {
        return x>y;
    }
    int main()
    {
        int n,max,m,i,j,sum;
        int a[100];    
        while(scanf("%d%d",&n,&max)!=EOF)
        {
            for(i=0;i<n;i++)
            {
                scanf("%d",&a[i]);
            }
            sort(a,a+n,cmp);
            j=0;
            sum=0;
                for(i=0;i<n;i++)
            {
                sum+=a[i];
                j++;
                if(sum>=max)
                {
                    break;
                }
            }
            printf("%d
    ",j);
        }

      

  • 相关阅读:
    SRM 594 DIV 2
    python 算法
    virtualenv和virtualenvwrapper介绍、安装和使用
    Django自带的ORM如何执行group by(聚合查询)语句(求和、累积、平均)
    Django REST FrameWork中文教程4:验证和权限
    Django REST FrameWork中文教程3:基于类的视图
    Django REST FrameWork中文教程2:请求和响应
    Django REST framework 中文教程1:序列化
    MySQL基础-存储过程和函数
    MySQL基础-变量
  • 原文地址:https://www.cnblogs.com/yinghualuowu/p/5432413.html
Copyright © 2011-2022 走看看