关于堆的判断 将一系列给定数字顺序插入一个初始为空的小顶堆H[]。随后判断一系列相关命题是否为真。命题分下列几种: x is the root:x是根结点;x and y are siblings:x和y是兄弟结点;x is the parent of y:x是y的父结点;x is a child of y:x是y的一个子结点。 输入格式: 每组测试第1行包含2个正整数N(\le≤
跟MT3029战神小码哥类似,都是贪心+堆。注意开long long 这里的堆顶为战斗力最小的,便于贪心的反悔操作。先按容忍度从大到小排序(q中总容忍度取决于最小的容忍度),再向q中存数,存到不能容忍之后再把堆顶踢出,取最大值。 #include <bits/stdc++.h>using namespace std;const long long int N = 1e5 + 10;
//r[n]:当前第几列的值。 //l[n]:当前第几行的值。 暴力+减止 #include<bits/stdc++.h>using namespace std;#define int long long const int n=1e3;int a,b,c,l[n],r[n],an; void dfs(int x,int y){if(x==b+1){an++;return ;}fo