![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
贪心
syyyyyw
acmer一枚
展开
-
poj 2376
思路如下,首先看最大的和最小是否把1到t包含,如果不能包含,输出-1剩下的就贪心,在s小于当前的e+1时找最大的e,如果找不到,就退出,输出-1否则就输出结果。代码如下#include#include#include#includeusing namespace std;struct Node{ int s,e;}a[25005],temp;bool cmp(原创 2017-07-30 18:03:29 · 191 阅读 · 0 评论 -
poj 3614
贪心加优先队列代码如下#include#include#include#include#includeusing namespace std;typedef pair p;priority_queue,greater > q;p cow[2505],bot[2505];int main(){ int c,l; while(~scanf("%d%d",&c原创 2018-03-04 16:48:48 · 250 阅读 · 0 评论 -
poj 3262
就一个排序,代码如下#include#include#include#includeusing namespace std;struct Node{ int t,d;}a[100005];bool cmp(Node a,Node b){ return a.t*b.d<b.t*a.d;}int main(){ int n; while(~s原创 2018-01-25 13:41:30 · 227 阅读 · 0 评论 -
poj 3040
参考的别人的代码代码如下#include#include#include#define INF 0x3f3f3f using namespace std;int use[30];//记录当前取法的第i种面值取的个数 struct node{ int v,b;}a[25];int cmp(node a,node b){ return a.v<b.v;} int原创 2018-01-25 11:50:51 · 227 阅读 · 0 评论 -
poj 1862
代码如下#include#include#include#include#include#includeusing namespace std;int main(){ int n; while(~scanf("%d",&n)) { priority_queue q; for(int i=0;i<n;i++){原创 2018-01-25 13:20:50 · 159 阅读 · 0 评论 -
poj 3190
要用优先队列去维护结束的时间代码如下#include#include#include#include#includeusing namespace std;const int maxn=50005;int used[maxn];struct Node{ int pos,l,r; bool operator <(const Node &a) const{ retur原创 2017-09-03 08:54:36 · 156 阅读 · 0 评论 -
poj 2586
最近状态有点差,总是不是这里写错一点,就是那里写错一点;亏损的放后面,可以保证公用代码如下;#include#include#include//2 3为5和7 #include//1 4 为3 和 9 using namespace std;int main(){int s,d;while(~scanf("%d%d",&s,&d)){int ans;原创 2017-08-26 19:27:01 · 182 阅读 · 0 评论 -
poj 2109
就这样吧,不是一个贪心题代码如下#include #include using namespace std; int main(void) { double n,p; while(cin>>n>>p) cout<<pow(p,1.0/n)<<endl; //指数的倒数就是开n次方 return 0;原创 2017-08-26 16:18:25 · 263 阅读 · 0 评论 -
hdu 5933
注意细节从左向右,贪心#include#include#include#includeusing namespace std;int main(){ int t,cnt=0; scanf("%d",&t); while(t--){ int n,k; scanf("%d%d",&n,&k); int a[100005]; long long sum=0;原创 2017-08-14 20:54:28 · 190 阅读 · 0 评论 -
HDU - 5935
注意精度速度不一定是整数#include#include#include#includeusing namespace std;#define eps (1e-8)int main(){ int t,cnt=0; scanf("%d",&t); while(t--){ int n; int a[100005]; scanf("%d",&n); a[0]=原创 2017-08-14 20:11:27 · 220 阅读 · 0 评论 -
Codeforces Round #386 (Div. 2) D
先插多的,再插少的;代码如下#include#include#include#includeusing namespace std;int main(){ int n,k,a,b,p; char aa='G',bb='B'; scanf("%d %d %d %d",&n,&k,&a,&b); if(b>a) { swap(a,b); swap(aa,bb); //原创 2017-08-06 10:45:11 · 177 阅读 · 0 评论 -
UVALive 7483
就是贪心;可以看自己写的贪心总结区间3大问题代码如下#include#include#include#includeusing namespace std;struct Node{ int l,u;}a[105];bool cmp(Node a,Node b){ if(a.u==b.u) return a.l>b.l; return a.u<b.u;}原创 2017-08-19 22:22:57 · 194 阅读 · 0 评论 -
区间问题 贪心总结
今天无意间在紫书上发现了这个问题分为3大类其中有一类正好是前几天wa的题第一类是选择不相交区间问题,即选择尽可能多的区间,使区间两两没有交点(a,b)如果一个区间被另一个区间完全包含,那一定去选小的区间、按照b从小到大排序分两种情况a2a2>a1 如果完全不相交,就没有影响否则只能二选一不选区间2,实际的有效部分被区间2包含,所以就不能选综上选择原创 2017-08-19 10:43:44 · 571 阅读 · 0 评论 -
POJ 1017
贪心关键是求除数是可以(x+n-1)/n来求代码如下#include#include#include#includeusing namespace std;int main(){ int a,b,c,d,e,f; while(~scanf("%d%d%d%d%d%d",&a,&b,&c,&d,&e,&f)){ if(a==0&&b==0&&c==0&&d==0&原创 2017-08-10 15:37:35 · 152 阅读 · 0 评论 -
poj 2393
维护一个最小值就行代码如下#include#include#include#includeusing namespace std;int main(){ int n,s; scanf("%d %d",&n,&s); long long sum=0; int mi=9999; for(int i=0;i<n;i++) { int c,y; scanf("%d原创 2017-08-10 11:41:37 · 121 阅读 · 0 评论 -
poj 1328
代码如下一开始思路想用坐标来记录能装多少个小岛,但没给数据范围换成小岛,就很容易写出来了。代码如下#include#include#include#include#includeusing namespace std;struct Node{ double l,r;};int cmp(Node a,Node b){ return a.l<b.l;}int原创 2017-05-26 09:32:40 · 151 阅读 · 0 评论 -
hdu 5461
想来想去感觉写起来好麻烦啊最后存了6个数,直接暴力看别人是这样写的 存到两个数组 如果坐标相同 就取两个最大值 否则那个就是最大值代码如下#include<cstdio>#include<iostream>#include<cstring>#include<algorithm>using namespace std;con...原创 2018-10-04 19:03:44 · 151 阅读 · 0 评论