#include <iostream>
#include <list>
#include <set>
#include <vector>
using namespace std;
int m, n;
int opask = ;
class node {
public:
int idm;
long long id;
long long score;
node(int c, int a, int b) :idm(c), id(a), score(b) {}
};
class cmp {
public:
bool operator()(node a, node b)
{
if (a.score == b.score)
{
if (a.idm == b.idm)
{
return a.id < b.id;
}
return a.idm < b.idm;
}
return a.score > b.score;
}
}; int main()
{
cin >> m >> n;
set<node,cmp> li;
set <int> del[];
//set<int> st[5005];
vector<int> st[];
for (int i = ; i < n; i++)
{
int id, score;
cin >> id >> score;
for (int j = ; j < m; j++)
li.insert(node(j, id, score));
}
int opnum;
cin >> opnum;
for (int i = ; i < opnum; i++)
{
int flag;
cin >> flag;
if (flag == )
{
int type, commodityid, score;
cin >> type >> commodityid >> score;
li.insert(node(type, commodityid, score));
}
else if (flag == )
{
int type, commodityid;
cin >> type >> commodityid;
del[type].insert(commodityid);
}
else if (flag == )
{
int k[];
for (int i = ; i <= m; i++)
cin >> k[i];
int sum = ;
int max[] = { };
for (auto i : li)
{
if (max[i.idm] < k[i.idm + ] && sum < k[] && del[i.idm].find(i.id) == del[i.idm].end())
{
//st[opask*m + i.idm].insert(i.id);
st[opask*m + i.idm].push_back(i.id);
sum++;
max[i.idm]++;
}
if (sum >= k[])
break;
}
opask++;
}
} for (int i = ; i < opask*m; i++)
{
if (st[i].empty())
cout << "-1" << endl;
else
{
for (auto it : st[i])
cout << it << " ";
cout << endl;
}
}
return ;
} 起先用链表来存取商品信息,提交后发现时间超了,应该是查询商品时太慢,所以采用set来存取商品信息来提交,但提交后发现只得60分,原因如其他博客所说,应该是后台的数据有问题
,所以输出时不用对他的商品id进行排序就可,刚开始我是把信息存到set里直接就是排好序的,后来就直接有vector来存取,就可以了,注释的就是排序的结果,

CCF认证201909-4推荐系统的更多相关文章

  1. CCF认证历年试题

    CCF认证历年试题 不加索引整理会死星人orz 第一题: CCF201712-1 最小差值(100分) CCF201709-1 打酱油(100分) CCF201703-1 分蛋糕(100分) CCF2 ...

  2. 小明种苹果(续)第十七次CCF认证

    小明种苹果(续)第十七次CCF认证 题目 原题链接 ](http://118.190.20.162/view.page?gpid=T93) 很高心,在现在CCF CSP可以下载自己当时的答卷了,也就是 ...

  3. CCF认证(1)

    #include <iostream> #include <windows.h> using namespace std; typedef struct letter{ int ...

  4. CCF 认证4

    题意:求强联通分量 Tarjan算法 #include<iostream> #include<stdio.h> #include<stdlib.h> #includ ...

  5. CCF 认证

    题意:字符串替换 string+map的应用 #include<iostream> #include<stdio.h> #include<stdlib.h> #in ...

  6. CCF认证考试——折点计数

    描述:简单题 #include<iostream> using namespace std; int main() { ], n, count = ; cin >> n; ; ...

  7. CCF认证之——相反数

    这道题目非常简单! #include<iostream> using namespace std; int main() { ],n,count=; cin >> n; ; i ...

  8. ccf认证 201709-4 通信网络 java实现

    试题编号:                                                               201709-4 试题名称: 通信网络 时间限制: 1.0s 内 ...

  9. ccf认证模拟题之三---最大的矩形

    问题描述 在横轴上放了n个相邻的矩形,每个矩形的宽度是1,而第i(1 ≤ i ≤ n)个矩形的高度是hi.这n个矩形构成了一个直方图.例如,下图中六个矩形的高度就分别是3, 1, 6, 5, 2, 3 ...

随机推荐

  1. linux日常运维工作

    Linux的使用环境也日趋成熟,各种开源产品络绎不绝,大有百花齐放的盛景,那么当Linux落地企业,回归工作时,我们还要面对这Linux运维方面的诸多问题,今天我们特意组织一场有关Linux 在企业运 ...

  2. 喵星之旅-狂奔的兔子-centos7一键安装redmine

    一.安装环境 CentOS-7-x86_64-DVD-1908.iso 二.获取安装文件 从官网获取,在下载页面提供了多种安装,最下方是一键安装版本,里面有两种选择,一个是安装包,一个是虚拟机硬盘文件 ...

  3. 安卓基础(Navigation)

    今天学习了简单的Navigation:页面导航. 页面导航的简单例子: MainAcitivity: package com.example.navigation; import android.su ...

  4. 【应急响应】Windows 安全加固

    一.补丁管理 运行cmd,输入systeminfo查看目前补丁信息 二.账户管理 gpedit.msc —>Windows设置—>安全设置—>本地设置—>账户设置 密码策略: ...

  5. eclipse 自定义代码块设置(代码模板)

    eclipse设置自定义代码模板 window -> show View -> other -> Templates 原来main模板 修改模板 再次插入

  6. 吴裕雄 python 机器学习——模型选择验证曲线validation_curve模型

    import numpy as np import matplotlib.pyplot as plt from sklearn.svm import LinearSVC from sklearn.da ...

  7. Ansible自动化搭建及工具集和常见模块、命令详情(重点)

    一.ansible介绍 1.ansible简介 官方的title是“Ansible is Simple IT Automation”——简单的自动化IT工具. Ansible跟其他IT自动化技术的区别 ...

  8. 计算机基础 - 动态规划、分治法、memo

    动态规划 ≈ 分治法 + memo def memo(func): cache = {} def wrap(*args): if args not in cache: cache[args] = fu ...

  9. openfire 安装配置时出现The Openfire database schema does not appear to be installed. Follow the installati错误的解决方案

    最近再弄openfire用openLDAP整合,本来没整合的时候选的标准数据库没问题,但是现在用嵌入式数据库,就报错了,,, 报错原因:没有导入openfire的数据表 解放办法: 1.登陆数据库 , ...

  10. 连接数据库的url

    mysql: jdbc:mysql://localhost:3306:test这句里面分如下解析:jdbc:mysql:// 是指JDBC连接方式:localhost: 是指你的本机地址:3306 S ...