【P3817 小A的糖果

  小A有N个糖果盒,第i个盒中有a[i]颗糖果。

小A每次可以从其中一盒糖果中吃掉一颗,他想知道,要让任意两个相邻的盒子中加起来都只有x颗或以下的糖果,至少得吃掉几颗糖。

【贪心策略】:

  

  因为吃后面的可以影响后面的情况。所以一旦不满足就吃后面的即可。

 #include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N = 1e5+;
ll a[N] , n , x ;
int main()
{
ios_base :: sync_with_stdio(false);
cin.tie(NULL) , cout.tie(NULL) ;
cin >> n >> x ;
for( int i= ; i<=n ;i++ )
cin >> a[i] ;
ll ans = ;
for( int i=; i<=n- ;i++ ){
if( a[i] + a[i+] > x ){
ll tmp = (a[i]+a[i+])-x ;
a[i+] = max( a[i+] - tmp , 0ll );
ans += tmp ;
}
}
cout << ans << endl;
return ;
}

【P1094  纪念品分组】

  元旦快到了,校学生会让乐乐负责新年晚会的纪念品发放工作。为使得参加晚会的同学所获得 的纪念品价值相对均衡,他要把购来的纪念品根据价格进行分组,但每组最多只能包括两件纪念品, 并且每组纪念品的价格之和不能超过一个给定的整数。为了保证在尽量短的时间内发完所有纪念品,乐乐希望分组的数目最少。

你的任务是写一个程序,找出所有分组方案中分组数最少的一种,输出最少的分组数目。


【贪心策略】

  双指针算法,排序后,一个指着前面一个指着后面,如果后面放一个,看前面能放多少个,直到放不了为止就下一个盒子。

 #include<bits/stdc++.h>
using namespace std;
const int N = 3e4+;
int a[N];
int n,w;
int main()
{
ios_base :: sync_with_stdio(false);
cin.tie(NULL) , cout.tie(NULL);
cin >> w >> n ;
for(int i=;i<=n;i++) cin >> a[i] ;
sort( a+ , a++n );
int p1 = , p2 = n ;
int ans = ;
while( p1 <= p2 ){
if( a[p1] + a[p2] <= w ){
p1 ++ , p2 --;
}else{
p2 -- ;
}
ans ++;
}
cout << ans << endl;
return ;
}

 
【ZJOI2008]泡泡堂】

  田忌赛马问题:但是通过两个指针分别指着两个不同的组。

  1、如果 我队最弱的 > 对方最弱的  +2

  2、如果 我方最强的 > 对方最强的  +2 

  3、如果送人头时发现,我方最弱 > 对方最强的 +1

剩下来就去送人头即可。

 //泡泡堂
#include<bits/stdc++.h>
using namespace std;
const int N = 1e5+;
int n, a[N],b[N] ;
int solve( int a[] , int b[] ){
int H1 = , T1 = n ;
int H2 = , T2 = n ;
int res = ; while( H1 <= T1 && H2 <= T2 ){
if( a[H1] > b[H2] ){
res += ;
H1 ++ , H2 ++ ;
}else if( a[T1] > b[T2] ){
res += ;
T1 -- , T2 -- ;
}else{
if( a[H1] == b[T2] ) res ++ ;
H1 ++ , T2 -- ;
}
}
return res ;
} int main()
{
scanf("%d",&n);
for(int i=;i<=n;i++) scanf("%d",&a[i]);
for(int i=;i<=n;i++) scanf("%d",&b[i]);
sort( a+ , a+n+ );
sort( b+ , b+n+ );
int ans1 = solve( a , b );
int ans2 = *n - solve( b , a);
printf("%d %d\n",ans1,ans2);
return ;
}

【P5019 铺设道路】

【题解】:来自洛谷的题解区的说法以及配图

https://www.luogu.org/problemnew/solution/P5019

贪心策略

若a[i]>a[i-1],计数器sum+=a[i]-a[i-1];

贪心证明

假设现在有一个坑,但旁边又有一个坑。

你肯定会选择把两个同时减1;

那么小的坑肯定会被大的坑“带着”填掉。

大的坑也会减少a[i]-a[i-1]的深度,可以说是“免费的”;

所以这样贪心是对的;

6

4 3 2 5 3 5

把道路画出来

aaarticlea/PNG;base64,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" alt="" />

aaarticlea/PNG;base64,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" alt="" />


【P1223 排队接水】

【题解】

这个题目其实是需要认真读题才行。

可以类比日常中的现象就行了。

比如我经常去剪头发,其实这个如果前面有两位小姐姐去剪头发,而我需要等待至少2个小时的时间去剪。但是我剪头发却只需要3~5分钟。那么是不是浪费我很多时间呢?对于整体我们三个人来说其实我们的平均花费时间是很大的,这个其实和操作系统中的调度算法,页面置换都是一个道理,我们先进先出必定是最失败的。如果采用短作业优先。那么就会整体提高这个大家的效率。

 #include<cstdio>
#include<algorithm>
#include<map>
using namespace std;
const int N = 1e4+;
typedef struct Node{
int val,No;
bool operator < ( const Node &rhs ) const {
return ( val < rhs.val
|| (val==rhs.val&&No<rhs.No) );
}
}Node;
Node a[N];
int main()
{
int n;
double sum=;
scanf("%d",&n);
map<int ,int >my;
for(int i=;i<=n;i++){
scanf("%d",&a[i].val);
a[i].No = i ;
}
sort(a+,a++n);
int every=;
for(int i=;i<=n;i++){
printf("%d%c",a[i].No,i==n?'\n':' ');
if(i!=){
every+=a[i-].val;
}
sum+=every;
}
printf("%.2lf\n",sum/(n*1.0));
return ;
}

【P1803 凌乱的yyy / 线段覆盖】

【题解】

经典贪心模型,线段覆盖问题

 #include<bits/stdc++.h>
using namespace std;
const int N = 2e6+;
typedef struct Line{
int S,E;
bool operator < (const Line &rhs ) const {
if( E == rhs.E )
return S < rhs.S;
return ( E < rhs.E );
}
}Node;
Node a[N];
int n;
int main()
{
cin >> n ;
for( int i = ; i <= n ; i++ ){
cin >> a[i].S >> a[i].E;
}
sort( a+ , a++n );
int E = ,ans = ;
for( int i= ; i <= n ; i++ ){
if( E <= a[i].S ){
E = a[i].E;
ans ++ ;
}
}
cout << ans << endl ;
return ;
}

【P2060 [HNOI2006]马步距离】

【题解】

这个题目其实挺不错的,我之前就遇到过,但是没想到正确的代码如此小,而且非常好理解。

大家需要注意一点的是,这个棋盘是无限大的,但是如果遇到有限的棋盘的情况下其实是不可以这样通过打表的方式做的。主要是因为有些边界是无法走而导致最小的步数走不出来。

 #include<bits/stdc++.h>
using namespace std;
int Step[][]={
{,,,,},
{,,,,},
{,,,,},
{,,,,},
{,,,,}
};
int main(){
int sx,sy,ex,ey,x,y;
cin >> sx >> sy >> ex >> ey ;
x = abs( sx - ex );
y = abs( sy - ey );
if( x < y ) swap(x,y);
int ans = ;
while( x> || y> ){ if( x < ) x = -x ;
if( y < ) y = -y ;
if( x < y ) swap( x , y ) ;
x -= ;
y -= ;
ans ++ ;
}
printf("%d\n",ans+Step[x][y]);
return ;
}

【P1645 序列】

说句老实话吧,这个题其实就是省赛那道题目,我真的对不起队友,要是我当初好好在寒假学习一下,立即就是银牌了。真的对不起队友,真的十分懊悔,懊悔。懊悔。

就是多条覆盖线,然后满足最少的放法。真的对不起大家,认真训练真的非常重要。

 #include<bits/stdc++.h>
using namespace std;
const int N = 1e5+;
int vis[N],n;
typedef struct Node{
int L , R , C ;
bool operator < ( const Node &rhs ) const {
return R < rhs.R ;
}
}Node ;
Node a[N];
int main(){
cin >> n ;
for( int i= ; i<=n ; i++ ){
cin >> a[i].L >> a[i].R >> a[i].C ;
}
sort ( a+ , a++n );
int t ;
int ans = ;
for( int i= ; i<=n ; i++ ){
//cout << a[i].L << " " << a[i].R << endl;
t = a[i].C ;
for(int j=a[i].L ; t && j <= a[i].R ; j++ ){
if( vis[j] ) t--;
}
for(int j=a[i].R ; a[i].L<=j && t ; j-- ){
if( vis[j]== ) {
vis[j] = ;
t--;
ans++;
//printf("#### %d ### \n",j);
}
}
} printf("%d\n",ans);
return ;
}
 

【P2142 高精度减法】

【题解】
手写高精度,但我的这个效率特别低。
 
 #include<bits/stdc++.h>
using namespace std;
const int N = 1e6+;
int a[N],b[N],c[N],n,m;
char s[N],t[N];
bool Is_Minus(){
if( n < m ) return true ;
if( n > m ) return false ;
if( n == m ){
return strcmp( s , t ) < ;
}
}
int main()
{
scanf("%s%s",s,t);
n = strlen(s) , m = strlen(t) ;
for(int i=;s[i];i++) a[i] = s[i] - '';
for(int i=;t[i];i++) b[i] = t[i] - ''; if( strcmp(s,t) == ){
printf("0\n");
return ;
} reverse ( a , a+n );
reverse ( b , b+m ); if( Is_Minus() ){
printf("-");
swap( n , m );
swap( a , b );
}
/*
printf("%d %d \n",n,m);
for( int i = 0 ; i < n ;i++ ){
printf("%d%c",a[i],i==n-1?'\n':' ');
}
for( int i = 0 ; i < n ;i++ ){
printf("%d%c",b[i],i==n-1?'\n':' ');
}
*/
for(int i=n-;i>=;i--){
if( a[i] - b[i] >= ){
c[i] = a[i] - b[i] ;
}else{
c[i] = + a[i] - b[i] ;
for(int j=i+;j<n;j++){
if( c[j] ){
c[j]-- ;
break;
}else{
c[j] = ;
}
}
}
}
bool Front_Zero = true;
for(int i=n-;i>=;i--){
if( c[i] == && Front_Zero ){
continue;
}else{
Front_Zero = false ;
}
printf("%d",c[i]);
}
puts("");
return ;
}
 
 

【贪心】洛谷2019 OI春令营 - 普及组 作业的更多相关文章

  1. 【数据结构】洛谷2019 OI春令营 - 普及组 作业

    [P3662][USACO17FEB]Why Did the Cow Cross the Road II S 求解连续的k个数的最大值,利用前缀和维护即可. #include<bits/stdc ...

  2. 【动态规划】洛谷2019 OI春令营 - 普及组 作业

    [P1464 Function] [题解] 按照题目意思进行递归即可,但是过程中需要用到记忆化搜索. #include<bits/stdc++.h> using namespace std ...

  3. 【洛谷2019 OI春令营】期中考试

    T68402 扫雷 题目链接:传送门 题目描述 扫雷,是一款单人的计算机游戏.游戏目标是找出所有没有地雷的方格,完成游戏:要是按了有地雷的方格,游戏失败.现在 Bob 正在玩扫雷游戏,你作为裁判要判断 ...

  4. 洛谷P1067 多项式输出 NOIP 2009 普及组 第一题

    洛谷P1067 多项式输出 NOIP 2009 普及组 第一题 题目描述 一元n次多项式可用如下的表达式表示: 输入输出格式 输入格式 输入共有 2 行 第一行 1 个整数,n,表示一元多项式的次数. ...

  5. 牛客网NOIP赛前集训营-普及组(第二场)和 牛客网NOIP赛前集训营-提高组(第二场)解题报告

    目录 牛客网NOIP赛前集训营-普及组(第二场) A 你好诶加币 B 最后一次 C 选择颜色 D 合法括号序列 牛客网NOIP赛前集训营-提高组(第二场) A 方差 B 分糖果 C 集合划分 牛客网N ...

  6. 洛谷2019 3月月赛 T2

    题干 洛谷同款 T2?(看似比T1简单些) 二维前缀和嘛?[多简单 我天天拿二维前缀和水DP] 这是前缀和的预处理 2333 处理出来所有的情况 某个地方要加上mod再%mod 如果没有这一步 那么 ...

  7. 洛谷 P1073 最优贸易 & [NOIP2009提高组](反向最短路)

    传送门 解题思路 很长的题,实际上在一个有向图(点有点权)中求一个从起点1到终点n的路径,使得这条路径上点权最大的点与点权最小的点的差值最大(要求必须从点权较小的点能够走到点权较大的点). ——最短路 ...

  8. 洛谷2019 3月月赛 T1

    题干 2019第一次月赛 我只有255pts T1还是比较水的... 海星 T1一道简单的模拟(就是有坑..导致很多人不能一次性AC 比如说我) _3个坑点 1.位数问题 2.-0 3.0... #i ...

  9. 洛谷2019 3月月赛 T4

    T3做不来.. 直接滚去T4 orz 乍一看 T4是个DP 题干 复杂度??(N^4) 咋优化... 还带一只捆绑 捆绑啥的最烦人了 最后20pts 直接废了 T了 很烦 不过拿到80pts已经很开心 ...

随机推荐

  1. avalon里面倒计时功能2

    // 转格式 timeStamp: function (second_time) { var time = parseInt(second_time) + "秒"; ) { ; ) ...

  2. Vue实战041:获取当前客户端IP地址详解(内网和外网)

    前言 我们经常会有需求,希望能获取的到当前用户的IP地址,而IP又分为公网ip(也称外网)和私网IP(也称内网IP),IP地址是IP协议提供的一种统一的地址格式,每台设备都设定了一个唯一的IP地址”, ...

  3. buoyantSimpleFoam求解器:恒热流壁面【翻译】

    翻译自:CFD-online 帖子地址:http://www.cfd-online.com/Forums/openfoam-solving/148183-buoyantsimplefoam-fixed ...

  4. BZOJ3236作业

    这东西是个应用为O(logn)的莫队. 正常莫队的updata函数转移是O(1)的,可这个题时间非常宽泛,可以套两个树状数组,那两个东西很好维护,第一个直接普通权值树状数组维护,第二个开一个桶,记录当 ...

  5. C语言--输入输出格式

    一.PTA实验作业 题目1:7-3 温度转换 本题要求编写程序,计算华氏温度150°F对应的摄氏温度.计算公式:C=5×(F−32)/9,式中:C表示摄氏温度,F表示华氏温度,输出数据要求为整型. 1 ...

  6. php手记之05-tp5模型操作数据库

    # 实例化模型 // $user = new User; // $user1 = new User(); // $user2 = model('user'); // 添加一条数据 # 方法1 // $ ...

  7. 【Oracle/Java】以Insert ALL方式向表中插入百万条记录,耗时9分17秒

    由于按一千条一插程序长期无反应,之后改为百条一插方式,运行完发现插入百万记录需要9m17s,虽然比MySQL效率差,但比单条插入已经好不少了. 对Oracle的批量插入语法不明的请参考:https:/ ...

  8. Android 使用Intent

    使用intent可以吊起其他应用 例如发送电子邮件 public void sendEmail(View view){ Intent intent = new Intent(Intent.ACTION ...

  9. Ionic4.x 中的 UI 组件(UI Components) 日期组件

    1.日期组件的基本使用 官方文档:https://ionicframework.com/docs/api/datetime 模板中: <ion-datetime display-format=& ...

  10. ColorMatrix图片饱和度设置

    package com.loaderman.customviewdemo; import android.app.Activity; import android.graphics.Bitmap; i ...