2019.3.27

1.贪心:最优队列

http://poj.org/problem?id=3253

倒推,最小的两个和在一起,加入队列(模拟倒割)

#include<iostream>
#include<algorithm>
#include<queue>
#define LL long long
using namespace std;
int f[20005];
priority_queue<int, vector < int > ,greater < int > > q;
int main()
{
  int n;
  cin>>n;
  LL ans=0;
  for(int i=0;i<n;i++)
  {
     cin>>f[i];
     q.push(f[i]);
  }
  while(q.size()>1)
   {
       int a=q.top();
       q.pop();
       int b=q.top();
       q.pop();
       ans+=a+b;
       q.push(a+b);
   }
  cout<<ans<<endl;
  return 0;
}

POJ 3253

2.贪心:

http://acm.hdu.edu.cn/showproblem.php?pid=2037

按开始时间顺序排,然后查找从当前时间到其结束时间内有没有完整节目,没有加入答案,并且用now表示该事件的结束时间,让下一个数一直跳到now为止。

 1 #include<iostream>
 2 #include<algorithm>
 3 #include<queue>
 4 #include<cstring>
 5 #define LL long long
 6 #define mem(a) memset(a,0,sizeof(a))
 7 using namespace std;
 8 int f[20005];
 9 struct node{
10 int x,y;
11 }g[105],p;
12 int be[30],ed[30];
13 int main()
14 {
15   int n;
16   while(cin>>n&&n)
17   {
18      mem(be);
19      int ans=0;
20    for(int i=0;i<n;i++)
21    {
22      cin>>g[i].x>>g[i].y;
23    }
24    for(int i=0;i<n-1;i++)
25    {
26        for(int j=i+1;j<n;j++)
27        {
28            if(g[i].x>g[j].x)
29            {
30               p=g[i];
31               g[i]=g[j];
32               g[j]=p;
33            }
34        }
35    }
36    int now=0;
37    for(int i=0;i<n;i++)
38    {
39       if(g[i].x<now) continue;
40        int t=0;
41      for(int j=i+1;j<n;j++)
42      {
43        if(g[j].y<=g[i].y)
44        t++;
45        else if(g[j].y>g[i].y)
46        {
47            if(t)
48            break;
49        }
50      }
51      if(t==0)
52      {
53        ans++;
54        now=g[i].y;
55      }
56    }
57    cout<<ans<<endl;
58   }
59   return 0;
60 }

今年暑假不AC

3.贪心:

写的很麻烦,找到大于y和小于y的

https://vjudge.net/problem/161026/origin

 1 #include<iostream>
 2 #include<algorithm>
 3 #include<queue>
 4 #include<cstring>
 5 #define LL long long
 6 #define mem(a) memset(a,0,sizeof(a))
 7 using namespace std;
 8 int f[1500],g[1005];
 9 int main()
10 {
11   int n,k,p,x,y,b=0,s=0,sum=0;
12   cin>>n>>k>>p>>x>>y;
13   for(int i=1;i<=k;i++)
14    {
15       cin>>f[i];
16       sum+=f[i];
17       if(f[i]>y)b++;
18       else if(f[i]<y) s++;
19    }
20   int t=n-k,v=0;
21   if(sum+t>x) {cout<<"-1"<<endl;return 0;}
22   if(s>=n/2+1) {cout<<"-1"<<endl;return 0;}
23   if(b>n/2) {
24     for(int i=1;i<=t;i++)
25         cout<<"1 ";
26     return 0;
27   }
28   int m=k-s-b;
29   if(m+b>n/2)
30   {
31     for(int i=1;i<=t;i++)
32         cout<<"1 ";
33      sum+=t;
34   }
35
36   else
37   {
38       for(int i=1;i<=(1+n)/2-b-m;i++)
39       {
40           g[++v]=y;
41           sum+=y;
42       }
43       for(int i=1;i<=n/2-s;i++)
44      {
45         g[++v]=1;
46         sum+=1;
47      }
48   }
49
50   if(sum>x) {cout<<"-1"<<endl;return 0;}
51   for(int i=1;i<=v;i++)
52     cout<<g[i]<<" ";
53
54   return 0;
55 }

school marks

原文地址:https://www.cnblogs.com/XXrll/p/10610143.html

时间: 2024-08-30 16:00:50

2019.3.27的相关文章

2019.08.27学习整理

2019.08.27学习整理 什么是继承 是一种新建类的方式,继承了一个类,类中的属性和方法就在子类中 父类/基类 子类/派生类 新式类:只要继承了object类,就是新式类,在python3中,默认继承object类 -Python3中:默认继承object class A: pass -python2中,需要显示的指定继承object --经典类:没有继承object的类,就是经典类 -python3中没有经典类 -python2中才有 利用继承减少代码冗余 #继承重用父类方法方式一:指名道

2019.10.27 头条面试准备

2019.10.27 头条面试准备 个人简历 2019.06 - 至今上海华为开发工程师 实习部门:5G开发部 项目:网站开发.运维开发.数据处理 2019.06至今华为实习 Python+Django+Javascript+Nginx+rabbitMQ+ELK 基于 Django 框架使用 Python 开发网站基础进程监控系统,实现进程异常记录.进程异常自动恢复.发送告警邮件,并且用 Web 界面进行展示和管理.整个框架由本人独立设计完成并上线,保证了部门 Web 的稳定. 使用Python

2019/9/27 题解:【P3958】 奶酪

题解:[P3958]  奶酪 题目: 传送门:https://www.luogu.org/problem/P3958 AC代码:DFS 1 #include<iostream> 2 #include<algorithm> 3 #include<cstring> 4 #include<cstdio> 5 #include<cmath> 6 using namespace std; 7 int n,outfg,cnt,anst; 8 double h

2019/10/27 TZOJ

1001 Gaussian Prime http://www.tzcoder.cn/acmhome/problemdetail.do?&method=showdetail&id=3798 .......................................我是真的一言难尽 1002 Sum of Factorials http://www.tzcoder.cn/acmhome/problemdetail.do?&method=showdetail&id=2696

2019.01.27个人总结

基础薄弱,依赖百度,没有自己的想法. 着手做系统的这九天,真的是一言难尽.自己是真的不知道怎么开始写,磨蹭了两天,方案写了一个又一个,又否定了一个又一个.详细的方案自己实现不了:工程大.需要考虑的东西太多:就打算把最基本的增删查改实现就可以了.依旧不知道怎么开始:问周围的同学,询问学长的意见,百度参考别人写好的系统.复制别人的代码,自己不知道什么意思:照着写,也弄不清为什么要这样写.这样写的好处又是什么?自己并不清楚. 时间不等人.我记得自己写了四次,写着写着自己感觉不对劲:逻辑不顺.与事实相悖

吾尝终日而思矣——2019.02.27

1.node.js 64 位安装包下载地址 : https://nodejs.org/dist/v4.4.3/node-v4.4.3-x64.msi 检测PATH环境变量是否配置了Node.js,点击开始=>运行=>输入"cmd" => 输入命令"path" 检查Node.js版本:node --version 2.项目生成package.json文件 cmd进入项目文件夹,$ npm init 所有问题之中,只有项目名称(name)和项目版本(v

开班前自学—python基础二_基础数据(2019.02.27)

一 基础数据类型 list: [],各种数据类型的数据,大量的数据,便于操作. tuple: 元组.()只读列表. dic: 存储大量的数据,关系型数据. 二 int str bool相互转换 1 int <---> str int --->str int(str) 条件:str必须全部由数字组成. str --->int str(int) age = int (input('how old are you?')) print(age) # 如果输入内容包括非数字,会报错 s1 =

2019.04.27

又是一个失眠的晚上.躺在床上回首过往. 终于快度过了没有鸟语没有花香的日子. 别人惊叹雪景很美的时候,我在担心我的茶苗,我的实验. 别人惊喜春天到了,樱花开了,我在担心我的毕业. 别人的生活,别人的假期,别人的娱乐,别人的旅游.而我从来不需要思考这些. 仿佛人生除了学习和科研,所有事情都与我无关.也不知道活着的意义. 大部分人也都无法理解,为什么没有实习,找不到工作,还毕不了业.简直大写的loser,然后投之以鄙夷的目光. 然而自己每天却还过得异常辛苦又艰难,所以很多时候都不好意思跟别人说.就连

2019/4/27

特征方程:解高阶齐次递推式的通项式的数学做法 简单叙述 二次递推的数学证明 原文地址:https://www.cnblogs.com/Chtholly/p/10778191.html