当前位置: 首页 > news >正文

网站改版 更换域名网络运营推广是做什么的

网站改版 更换域名,网络运营推广是做什么的,wordpress企业门户网站,山东德州疫情最新消息题意&#xff1a;一个人想邀请n个人出去玩&#xff0c;假设当前同意和他一起去的人数为cnt&#xff0c;那么他去邀请i的时候&#xff0c;i同意的条件是L[i]<cnt<R[i]&#xff0c;L[i],R[i]是给定的&#xff0c;问怎样安排邀请顺序&#xff0c;使得有最多的人同意思路&…

题意:一个人想邀请n个人出去玩,假设当前同意和他一起去的人数为cnt,那么他去邀请i的时候,i同意的条件是L[i]<=cnt<=R[i],L[i],R[i]是给定的,问怎样安排邀请顺序,使得有最多的人同意

思路:由于同意他的条件是cnt,不妨在当前状态下将所有没被邀请的人分成3类,一种是R[i]<cnt的,一种是L[i]<=cnt<=R[i]的,一种是L[i]>cnt的,对于第一种已经不可能同意了,因为cnt是递增的,对于第三种现在根本不用考虑,而对于第二种,那么都可以被邀请,且被邀请了一定会同意。明显应该邀请R[i]最小的,因为他们总是比其他人最先变成第一种人。于是得到一个贪心算法,每次选择L[i]<=cnt的所有没邀请的人中R[i]最小的。而这可以每次在cnt发生变化时,用set来维护第二种人的集合,并可以在logn的时间内找到R[i]最小的。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
#include <map>
#include <set>
#include <cmath>
#include <ctime>
#include <deque>
#include <queue>
#include <stack>
#include <vector>
#include <cstdio>
#include <string>
#include <cstdlib>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;
#define X                   first
#define Y                   second
#define pb                  push_back
#define mp                  make_pair
#define all(a)              (a).begin(), (a).end()
#define fillchar(a, x)      memset(a, x, sizeof(a))
typedef long long ll;
typedef pair<intint> pii;
typedef unsigned long long ull;
#ifndef ONLINE_JUDGE
void RI(vector<int>&a,int n){a.resize(n);for(int i=0;i<n;i++)scanf("%d",&a[i]);}
void RI(){}void RI(int&X){scanf("%d",&X);}template<typename...R>
void RI(int&f,R&...r){RI(f);RI(r...);}void RI(int*p,int*q){int d=p<q?1:-1;
while(p!=q){scanf("%d",p);p+=d;}}void print(){cout<<endl;}template<typename T>
void print(const T t){cout<<t<<endl;}template<typename F,typename...R>
void print(const F f,const R...r){cout<<f<<", ";print(r...);}template<typename T>
void print(T*p, T*q){int d=p<q?1:-1;while(p!=q){cout<<*p<<", ";p+=d;}cout<<endl;}
#endif
template<typename T>bool umax(T&a, const T&b){return b<=a?false:(a=b,true);}
template<typename T>bool umin(T&a, const T&b){return b>=a?false:(a=b,true);}
template<typename T>
void V2A(T a[],const vector<T>&b){for(int i=0;i<b.size();i++)a[i]=b[i];}
template<typename T>
void A2V(vector<T>&a,const T b[]){for(int i=0;i<a.size();i++)a[i]=b[i];}
const double PI = acos(-1.0);
const int INF = 1e9 + 7;
/* -------------------------------------------------------------------------------- */
const int maxn = 1e5 + 7;
const int M = 1e9;
struct Node {
    int L, R, id;
    bool operator < (const Node &that) const {
        return R < that.R;
    }
    Node(int L, int R, int id): L(L), R(R), id(id) {}
    Node() {}
};
multiset<Node> S;
int L[maxn], R[maxn];
pii node[maxn];
vector<int> G[maxn];
int main() {
#ifndef ONLINE_JUDGE
    freopen("in.txt""r", stdin);
    //freopen("out.txt", "w", stdout);
#endif // ONLINE_JUDGE
    int T;
    cin >> T;
    while (T --) {
        int n;
        cin >> n;
        S.clear();
        for (int i = 0; i <= n; i ++) {
            G[i].clear();
        }
        for (int i = 0; i < n; i ++) {
            scanf("%d", L + i);
            G[L[i]].pb(i);
        }
        for (int i = 0; i < n; i ++) {
            scanf("%d", R + i);
            node[i] = mp(L[i], R[i]);
        }
        for (int i = 0; i < G[0].size(); i ++) {
            int id = G[0][i];
            S.insert(Node(node[id].X, node[id].Y, id));
        }
        vector<int> ans;
        vector<bool> vis(n);
        int cnt = 0;
        while (1) {
            multiset<Node>::iterator iter = S.lower_bound(Node(0, cnt, 0));
            if (iter == S.end()) break;
            ans.pb((*iter).id);
            vis[(*iter).id] = true;
            S.erase(iter);
            cnt ++;
            for (int i = 0; i < G[cnt].size(); i ++) {
                int id = G[cnt][i];
                S.insert(Node(node[id].X, node[id].Y, id));
            }
        }
        for (int i = 0; i < n; i ++) {
            if (!vis[i]) ans.pb(i);
        }
        printf("%d\n", cnt);
        for (int i = 0; i < n; i ++) {
            printf("%d%c", ans[i] + 1, i == n - 1? '\n' ' ');
        }
    }
    return 0;
}

转载于:https://www.cnblogs.com/jklongint/p/4709672.html

http://www.lbrq.cn/news/2762749.html

相关文章:

  • 金华网站制作教育培训机构推荐
  • 上海网站建设公司如何创建微信小程序
  • 在线网站建设询问报价爱站seo工具
  • 网站后台编辑器无法显示南宁在哪里推广网站
  • 西部数据网站助手十大小说网站排名
  • 企业网站怎么做跟淘宝链接介绍产品的营销推文
  • 怎么查看网站谁做的如何使用免费b站推广网站
  • 单页式网站补肾壮阳吃什么药效果好
  • 如何让人帮忙做网站新闻发稿发布平台
  • wordpress 后台攻击seo优化网站百度技术
  • 牟平建设局网站北留德庄株洲最新今日头条
  • 洪山区建设局网站网站seo关键词排名查询
  • 沈阳制作网站的公司网推一手单渠道
  • 男女做的羞羞事的网站添加友情链接的技巧
  • 在常州 做兼职上什么网站百度首页百度
  • 嘉祥网站建设哪家好舆情危机公关公司
  • 专业做甜点的网站广告公司经营范围
  • 编程 给别人做网站中国万网登录入口
  • 做高端企业网站哪家网站优化公司好
  • 自己制作网站该怎么做乔拓云网站建设
  • 免费做视频网站如何创造一个自己的网站
  • 网站搜索引擎优化起名最好的网站排名
  • wordpress 修改版权台州网站建设优化
  • wordpress图标居中江阴网站优化公司
  • 天猫网站建设分析公司网站推广
  • 网站建设字体颜色代码石家庄seo外包公司
  • 纯静态网站 搜索功能外贸网站平台有哪些
  • 大同哪有做网站的外贸网络营销
  • 深圳建站公司优化建设公司网站大概需要多少钱?
  • 徐州网站开发兼职做推广的都是怎么推
  • Python 面向对象三大特性详解(与 C++ 对比)
  • 决策树学习报告
  • 云计算- KubeVirt 实操指南:VM 创建 、存储挂载、快照、VMI全流程 | 容器到虚拟机(镜像转换/资源调度)
  • 在嵌入式单片机开发中,通过校验和或者校验码来比对程序版本好有何优劣势
  • 十年回望:Vue 与 React 的设计哲学、演进轨迹与生态博弈
  • C++算法竞赛:位运算