模板题+进阶

模板题:2500 后面第一个大于

一般要正着看不出来,反着想,有的人也叫做正难则反。

有思维的一道题:1279 扔盘子

暴力会TLE

数据有点水,反着写的可以拿95%

 1 //垃圾数据从井底倒着网上数盘子居然能过19个测试点
 2 //但是提供给我们一种思路就是,明知道正着肯定会错时逆向解题也许能拿更多的分
 3 #include<bits/stdc++.h>
 4 using namespace std;
 5 const int maxN=50005;
 6 int n, m;
 7 int w[maxN], d[maxN];
 8 int main() {
 9     cin>>n>>m;
10     for(int i=0; i<n; i++)cin>>w[i];
11     for(int i=1; i<=m; i++)cin>>d[i];
12     if(w[0]<d[1])cout<<0;   //下载测试点数据:4 4 3 6 8 9 4 6 2 2
13     else {
14         int j=1;
15         for(int i=n-1; i>=0; i--) {
16             if(d[j]<=w[i]) {
17                 j++;
18             }
19         }
20         cout<<j-1;
21     }
22     return 0;
23 }

正着写用到所谓单调栈,比较有意思

 1 //很好的一道关于单调栈的题
 2 #include <bits/stdc++.h>
 3 using namespace std;
 4 const int N=50005;
 5 int w[N],d[N];
 6 stack<int>s;
 7 int main() {
 8     int n,m,ans=0,tmp=0x3f3f3f3f;
 9     scanf("%d%d",&n,&m);
10     for(int i=0; i<n; i++)scanf("%d",&w[i]);
11     for(int i=0; i<m; i++)scanf("%d",&d[i]);
12     for(int i=0; i<n; i++) {
13         if(w[i]<=tmp)tmp=w[i];//注意此处怎样将栈变成单调栈
14         s.push(tmp);
15     }
16     int cur=0;
17     while(!s.empty()&&cur<m) {
18         if(s.top()<d[cur]) {
19             s.pop();
20             continue;
21         }
22         ans++;
23         s.pop();
24         cur++;
25     }
26     printf("%d\n",ans);
27     return 0;
28 }

竞赛题型:1272 最大距离

原文地址:https://www.cnblogs.com/tflsnoi/p/12350592.html

时间: 2024-11-05 18:28:17

模板题+进阶的相关文章

BZOJ 2243 染色 | 树链剖分模板题进阶版

BZOJ 2243 染色 | 树链剖分模板题进阶版 这道题呢~就是个带区间修改的树链剖分~ 如何区间修改?跟树链剖分的区间询问一个道理,再加上线段树的区间修改就好了. 这道题要注意的是,无论是线段树上还是原树上,把两个区间的信息合并的时候,要注意中间相邻两个颜色是否相同. 这代码好长啊啊啊啊 幸好一次过了不然我估计永远也De不出来 #include <cstdio> #include <cstring> #include <algorithm> using namesp

hdu 2966 In case of failure kdtree模板题

问求每个点距离平方的最小的点 kd-tree模板题…… 1 #include<bits/stdc++.h> 2 #define cl(a,b) memset(a,b,sizeof(a)) 3 #define debug(x) cerr<<#x<<"=="<<(x)<<endl 4 using namespace std; 5 typedef long long ll; 6 typedef pair<int,int>

几道树剖模板题

寒假后半段一直都在外出旅游..颓了好久..qaq 旅游期间写了几道树剖模板题,贴上来.. BZOJ 1036 没啥好说的,裸题 1 #include <cstdio> 2 #include <algorithm> 3 4 #define LEFT (segt[cur].l) 5 #define RIGHT (segt[cur].r) 6 #define MID (segt[cur].mid) 7 #define SUM (segt[cur].Sum) 8 #define MAX (

poj3630 Phone List (trie树模板题)

Phone List Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 26328   Accepted: 7938 Description Given a list of phone numbers, determine if it is consistent in the sense that no number is the prefix of another. Let's say the phone catalogu

HUST 1017 - Exact cover (Dancing Links 模板题)

1017 - Exact cover 时间限制:15秒 内存限制:128兆 自定评测 5584 次提交 2975 次通过 题目描述 There is an N*M matrix with only 0s and 1s, (1 <= N,M <= 1000). An exact cover is a selection of rows such that every column has a 1 in exactly one of the selected rows. Try to find o

洛谷P3381——费用流模板题

嗯..随便刷了一道费用流的模板题....来练练手. #include<iostream> #include<cstdio> #include<cstring> using namespace std; int h[5210],d[5210],used[5210],que[100010],last[5210]; int k=1,INF=0x7fffffff,ans1=0,ans2=0; inline int read(){ int t=1,num=0; char c=ge

HDU 1251 Trie树模板题

1.HDU 1251 统计难题  Trie树模板题,或者map 2.总结:用C++过了,G++就爆内存.. 题意:查找给定前缀的单词数量. #include<iostream> #include<cstring> #include<cmath> #include<queue> #include<algorithm> #include<cstdio> #define max(a,b) a>b?a:b #define F(i,a,b

LA 4670 出现次数最多的子串 (AC自动机模板题)

Dominating Patterns Time Limit:3000MS   Memory Limit:Unknown   64bit IO Format:%lld & %llu [Submit]  [Go Back]  [Status] Description The archaeologists are going to decipher a very mysterious ``language". Now, they know many language patterns; ea

【POJ 2104】 K-th Number 主席树模板题

达神主席树讲解传送门:http://blog.csdn.net/dad3zz/article/details/50638026 2016-02-23:真的是模板题诶,主席树模板水过.今天新校网不好,没有评测,但我立下flag这个代码一定能A.我的同学在自习课上考语文,然而机房党都跑到机房来避难了\(^o^)/~ #include<cstdio> #include<cstring> #include<algorithm> #define for1(i,a,n) for(i