zoukankan      html  css  js  c++  java
  • 2021寒假积分赛(三)

    A:抱歉HDU - 1418

    非常抱歉,本来兴冲冲地搞一场练习赛,由于我准备不足,出现很多数据的错误,现在这里换一个简单的题目:

    前几天在网上查找ACM资料的时候,看到一个中学的奥数题目,就是不相交的曲线段分割平面的问题,我已经发到论坛,并且lxj 已经得到一个结论,这里就不

    多讲了,下面有一个类似的并且更简单的问题:

    如果平面上有n个点,并且每个点至少有2条曲线段和它相连,就是说,每条曲线都是封闭的,同时,我们规定:
    1)所有的曲线段都不相交;
    2)但是任意两点之间可以有多条曲线段。

    如果我们知道这些线段把平面分割成了m份,你能知道一共有多少条曲线段吗?

    Input输入数据包含n和m,n=0,m=0表示输入的结束,不做处理。
    所有输入数据都在32位整数范围内。Output输出对应的线段数目。Sample Input
    3 2
    0 0
    Sample Output
    3
    显而易见,这一题是一个结论,顶点+面数-2=棱数;
       int n, m;
        while(cin>>n>>m)
          {
            if(n==0&&m==0)break;
           cout<<n+m-2<<'
    ';
        }

    B - {A} + {B} HDU - 1412

     很简单,考点就是去重,这里用set或者unique去重都可以,唯一容易PE的就是格式最后一个没有空格;

    1 while(cin>>n>>m){//unique去重;
    2         for(int i=0;i<n+m;i++)cin>>a[i];
    3         sort(a,a+n+m);
    4         int t=unique(a,a+n+m)-a;
    5         cout<<a[0];
    6         for(int i=1;i<t;i++)cout<<" "<<a[i];
    7         cout<<'
    ';
    8    }
     1 while(cin>>n>>m){//set去重
     2         set<int>s;
     3         for(int i=0;i<n+m;i++){
     4             int t;cin>>t;
     5             s.insert(t);
     6         }
     7         
     8         for(auto t=s.begin();t!=s.end();t++){
     9             if(t==s.begin())cout<<*t;
    10             else cout<<" "<<*t;
    11         }
    12         cout<<'
    ';
    13     }

    C - 钱币兑换问题

     一个简单的完全背包问题没什么好说的

     1  
     2  int n;
     3       f[0]=1;
     4      for(int j=1;j<=3;j++){
     5       for(int i=1;i<=32768;i++){
     6           f[i]=max(f[i],f[i]+f[i-j]);
     7          }     
     8     }
     9   while(cin>>n){
    10           cout<<f[n]<<'
    ';
    11       }    
  • 相关阅读:
    springboot 配置
    spring boot配置分页插件
    mongodb 操作
    java基础知识
    java设计模式
    /cat/cpuinfo信息查看
    app接口开发
    基于OpenAM系列的SSO----基础
    关于Linux下的连接文件学习总结
    YII :将oracle中timestamp 字段正常显示在页面中
  • 原文地址:https://www.cnblogs.com/ahijing/p/14408538.html
Copyright © 2011-2022 走看看