摘要:
题意:一个人有一个代号K和一个优先等级P,一共有4种操作,0:结束,1:新建一个人,代号为K,优先等级为P,2:输出优先等级最大的人的代码,并删除该人,3:输出优先等级最小的人的代码,并删除该人。 用了C++ STL里的map容器,map容器有一个关键字,map容器自动按关键字排序。用map容器方便了好多呦~#include#include#includeusing namespace std;map elem;int main(){ int n; int k,p; while(scanf("%d",&n)) { if(!n) break; ... 阅读全文
摘要:
简单线段树。 只有两种操作,求一个区间的最大值,更改某一个点的值。由于是更改某一个点的值而不是改一个区间的值,所以就更新到了叶节点,反正对时间卡的也不严。#include#include#define N 200010#define max(a,b) (a)>(b)?(a):(b)int n,m;int w[N];struct node{ int L,R; int nmax;};node tree[N*4];int ans;void build(int id,int L,int R){ tree[id].R=R;tree[id].L=L; if(L==R) ... 阅读全文
摘要:
题意:给你两个数B、N,求一个数的N次方最接近B。 先求出B的1/N次方:A,然后比较A和A+1的N次方那个更接近B#include#include int main(){ double a,b,n; while(1) { scanf("%lf%lf", &b,&n); if (n==0.0 && b==0.0) break; a = (int)(pow (b, 1 / n)); if (fabs(pow(a,n)-b) > fabs(pow(a+1,n)-b)) a+=1.0; ... 阅读全文