首页 > 编程语言 >C++奥赛一本通贪心题解

C++奥赛一本通贪心题解

时间:2023-04-04 12:01:19浏览次数:67  
标签:node int 题解 scanf C++ 奥赛 ans include 贪心


C++奥赛一本通刷题记录(贪心)

2017.11.15 By gwj1139177410
书不见了,占坑待填。

  1. An Easy Problem poj2453
//贪心, 将最右边第一个01改成10并将其右边的1都往右移到最低位
#include<iostream>
using namespace std;
int main(){
    unsigned int n, x;
    while(cin>>n &&n){
        x = n&-n;
        cout<<(n+x+(n^(n+x))/x/4)<<"\n";//感受一下来自位运算的恐惧吧
    }
    return 0;
}
  1. 最大子矩阵 openjudge1768
  2. 金银岛 openjudge1797
//金属可分割, 所以直接贪心单位价值最大的优先选
#include<cstdio>
#include<algorithm>
using namespace std;
const int maxn = 10010;
int w, s;  double ans;
struct node{ double n, v; }a[maxn];
bool cmp(node a, node b){ return a.v/a.n>b.v/b.n;}
int main(){
    int T;  scanf("%d", &T);
    while(T--){
        ans = 0;
        scanf("%d%d", &w,&s);
        for(int i = 1; i <= s; i++)
            scanf("%lf%lf", &a[i].n, &a[i].v);
        sort(a+1,a+s+1,cmp);
        for(int i = 1; i<=s; i++){
            if(w >= a[i].n){ w -= a[i].n; ans += a[i].v; }
            else { ans += a[i].v/a[i].n*w; break; }
        }
        printf("%.2lf\n", ans);
    }
    return 0;
}
  1. 装箱问题 openjudge19
  2. Ride to Office openjudge2404
  3. 书架 openjudge2407
  4. 电池的寿命 openjudge2469
  5. 寻找平面上的极大点 openjudge2704
  6. 最小新整数 openjudge3528
  7. Crossing River openjudge702
  8. 接水问题 openjudge15


标签:node,int,题解,scanf,C++,奥赛,ans,include,贪心
From: https://blog.51cto.com/gwj1314/6168377

相关文章

  • C++,OpenCV图形基础(2)
    图像基础颜色通道RGB图像有4个默认通道:红色、绿色和蓝色各有一个通道,以及一个用于编辑图像复合通道(主通道)彩色深度8位色,每个像素所能显示的彩色数为2的8次方,即256种颜色。16位增强色,16位彩色,每个像素所能显示的彩色数为2的16次方,即65536种颜色。24位真彩色,每个像素所能显示的彩色......
  • C++统计写过的代码行数
    一、获得数据1、备份到XML2、改为txt2、进行统计#include<iostream>#include<string>usingnamespacestd;intmain(){ freopen("just.txt","r",stdin); strings; getline(cin,s); intflag=0;longlongcount=0; while(s!="gwj49491649......
  • SEO常见问题解答:如何解决网站优化中遇到的难题和挑战
    SEO常见问题解答:如何解决网站优化中遇到的难题和挑战网站优化是提高网站在搜索引擎中排名和流量的重要手段,但是在优化过程中,往往会遇到各种难题和挑战,如何有效地解决这些问题,是每个网站运营者和SEO专家都需要掌握的技能。本文将针对一些常见的网站优化问题,给出一些解决方案和建议......
  • HDU动态规划题解目录
    ProblemA:MaxSum(HDU1003)   点击这里ProblemB:CommonSubsequence(HDU1159)    点击这里ProblemC:SuperJumping!Jumping!Jumping!(HDU1087)    点击这里ProblemD:HumbleNumbers(HDU1058)   点击这里ProblemE:MonkeyandBanana(HDU1069)    点击这里ProblemF:......
  • 2023蓝桥杯省赛C/C++组备赛
    一、简单计算与模拟1.成绩统计#include<bits/stdc++.h>usingnamespacestd;intn;intmain(){ doublepoint; doublejige=0,youxiu=0; cin>>n; for(inti=0;i<n;++i){ cin>>point; if(point>=60){ jige++; if(point&......
  • magento 问题解答 FQA
    1.IsthereawaybymysqltosetALLproductvisibilitytocatalog,search? 批量修改产品可见 openuptheeav_attributetableandfindtherowwhereattribute_code=visibility.Takenoteoftheattribute_id,mostlikelyitwillbe85.Alsotakenotetha......
  • C/C++快递自提柜流程模拟系统[2023-04-03]
    C/C++快递自提柜流程模拟系统[2023-04-03]普通用户功能包括:普通用户分为老用户和新用户,新用户需要注册再登录,老用户直接注册并登录,登录时用户名和密码都输入正确才可进入用户界面。进入系统后,用户按照快递单号可以查询订单的所有物流信息:订单编号,快递单号(公司),快递的状态(已出库......
  • Codeforces Round 862 (Div. 2) A-D题解
    比赛地址A.WeNeedtheZero题意:给出一个数组,对任意1<=i<=n,令bi=aix,问是否存在x,使得b<sub>1</sub>b2...bn=0Solution如果n为奇数,那么x一定存在,因为偶数个x异或得到的是0,直接令x=0(a<sub>1</sub>a2...an)即可如果n为偶数,那么x取任何值都不会影响结果,所以只用看a1a<sub>2</sub......
  • 4/3 c++模板 2day
    1.与普通函数的区别{隐式转换必须在参数列标给出类型1.函数模板与普通函数区别2.都可以被重载3.在模板函数和普通函数都可以实现的情况下优先调用普通函数4.test<>(10);可以强制调用函数5.函数模板直接也可以重载,具体使用看最好的匹配}includeusingnamespacestd;tem......
  • c++ std::package_task,task.get_future()
    #include<iostream>#include<future>#include<thread>intcountdown(intfrom,intto){for(inti=from;i!=to;--i){std::cout<<i<<std::endl;std::this_thread::sleep_for(std::chrono::seconds(1));......