设置(settings)
设置(settings)
题目描述
如题所示,这将是一个关于设置的问题。
你需要通过对一个控制台进行设置,来得到不同的效果。
这个控制台由n个控制元件组成,每个元件有m种设置,其中i号元件的第j种设置将会给整体带来a[i][j]的效果值。
最终的效果值是所有n个元件所选设置的效果值之和。
然而,效果值并不是越大或越小越好,不同的效果值有不同的意义。
所以我们要求你给出效果值最小的那k种不同的方案(2种方案不同,当且仅当2种方案中存在至少1个元件的设置不同)。
不过由于我们其实并不关心你给出的那k种方案是什么,只需要弄清你是否能够找出那些方案,所以你只需要输出所有k种方案的效果值的异或和。
输入
第一行3个正整数n,m,k
接下来n行,每行m个非负整数,其中第i行第j个数表示第i个控制元件的第j种设置的效果值a[i][j]
输出
仅一行一个整数,表示k种方案的效果值的异或和
样例输入
3 2 2
11 21
9 25
17 19
样例输出
2
提示
样例说明
最小的2种方案的效果值分别为37(11+9+17)和39(11+9+19),异或和为37 xor 39 = 2
数据规模和约定
对于30%的数据,m^n<=10^6,k<=30000
对于另外30%的数据n<=100,n*m<=50000,k<=50000
对于100%的数据,n*m<=300000,k<=300000,保证m^n>=k,任意一个控制元件的任意一种设置效果值均不超过10^9
solution
#include<cstdio>
#include<iostream>
#include<cstdlib>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<vector>
#include<queue>
#define maxn 300005
#define ll long long
using namespace std;
int n,m,k;
vector<int>a[maxn];
ll ans;
struct node{
int x,num;ll v;
};
bool operator <(node a,node b){return a.v>b.v;}
priority_queue<node>q;
bool cmp(vector<int> a,vector<int> b){
return a[]-a[]<b[]-b[];//////////////////////
}
int main(){
cin>>n>>m>>k;
for(int i=;i<=n;i++){
for(int j=,t;j<=m;j++){
scanf("%d",&t);a[i].push_back(t);
}
sort(a[i].begin(),a[i].end());
}
sort(a+,a+n+,cmp);
ll val=;
for(int i=;i<=n;i++)val+=a[i][];
/*
for(int i=1;i<=n;i++){
for(int j=0;j<m;j++)cout<<a[i][j]<<' ';cout<<endl;
}*/
q.push((node){,,val});
while(k){
//cout<<"k "<<k<<endl;
node t=q.top();q.pop();
k--;ans^=t.v;
//printf("id=%d num=%d v=%lld\n",t.x,t.num,t.v);
if(t.num<m-)q.push((node){t.x,t.num+,t.v-a[t.x][t.num]+a[t.x][t.num+]});
if(t.num>&&t.x<n)q.push((node){t.x+,,t.v-a[t.x+][]+a[t.x+][]});
if(t.num==&&t.x<n){
ll nv=t.v+a[t.x][]-a[t.x][];
nv=nv+a[t.x+][]-a[t.x+][];
q.push((node){t.x+,,nv});
}
}
cout<<ans<<endl;
return ;
}
设置(settings)的更多相关文章
- Django 1.6 最佳实践: 如何设置django项目的设置(settings.py)和部署文件(requirements.txt)
Django 1.6 最佳实践: 如何设置django项目的设置(settings.py)和部署文件(requirements.txt) 作者: Desmond Chen,发布日期: 2014-05- ...
- VSCode 云同步扩展设置 Settings Sync 插件
VSCode 云同步扩展设置 Settings Sync 插件 Hi.大家好,今天又是美好的一天. 关于 Settings Sync扩展: Settings Sync可以同步你当前的VSCode配置环 ...
- C#中使用设置(Settings.settings) Properties.Settings.Default .(配置文件相当重要)
C#中使用设置(Settings.settings) Properties.Settings.Default . 2016年08月04日 15:02:43 zxd9790902 阅读数:10664更多 ...
- iOS开发之iOS程序偏好设置(Settings Bundle)的使用
目录[-] 1.添加设置项 2.设置的控件 3.编辑设置项的文件 4.在程序中获取Settings 和写入Settings 添加UI 5.实现读取设置和保存代码 在Android手机上, 在某个程序里 ...
- 【读书笔记】iOS-iOS开发之iOS程序偏好设置(Settings Bundle)的使用
在Android手机上, 在某个程序里,通过按Menu键,一般都会打开这个程序的设置,而在iOS里,系统提供了一个很好的保存程序设置的机制.就是使用Settings Bundle. 在按了HOME键的 ...
- tornado设置settings
1.作用 设置应用程序相关参数 2.用法 settings = dict() settings["debug"] = True tornado.web.Application.__ ...
- webstorm的个性化设置settings
如何更改主题(字体&配色):File -> settings -> Editor -> colors&fonts -> scheme name.主题下载地址 如 ...
- jenkins maven设置settings.xml
环境:jenkins.2.89.3 1.安装settings.xml管理插件Config File Provider Plugin 系统管理->管理插件->搜索Config File P ...
- maven设置------settings.xml文件学习
https://blog.csdn.net/tomato__/article/details/13025187 快速预览 maven的配置文件为settings.xml,在下面路径中可以找到这个文件, ...
- C#中使用设置(Settings.settings) Properties.Settings.Default
应用程序及用户设置 在设计时创建新设置的步骤 在“Solution Explorer”(解决方案资源管理器)中,展开项目的“Properties”(属性)节点. 在“Solution Explorer ...
随机推荐
- 转:mysql远程连接 Host * is not allowed to connect to this MySQL server
在本机登入mysql后,更改"mysql"数据库里的"user"表里的"host"项,从"localhost"改为'%' ...
- django+xadmin在线教育平台(十二)
6-4 用form实现登录-1 上面我们的用户登录的方法是基于函数来做的.本节我们做一个基于类方法的版本. 要求对类的继承有了解. 基础教程中基本上都是基于函数来做的,其实更推荐基于类来做.基于类可以 ...
- 转:Java后端面试自我学习
引自:https://www.cnblogs.com/JavaArchitect/p/10011253.html 最近面试java后端开发的感受:如果就以平时项目经验来面试,通过估计很难——再论面试前 ...
- scrapy--selenium
一直在学习scrapy的爬虫知识,但是遇到了动态加载页面的难题,从一开始的javascript渲染器--splash,docker服务, 遇到各种奇葩的问题: 1.docker代理设置添加无效,导致无 ...
- python__标准库 : 正则表达式(re)
re.match 尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回none. re.search 扫描整个字符串并返回第一个成功的匹配. 替换: re.sub(p ...
- composer 使用中国镜像
本人使用的是windows系统,安装完Composer后,直接打开CMD,执行以下代码: composer config -g repo.packagist composer https://pack ...
- 如果文件里是汉字的话,这地方seek括号里面只能是偶数
>>> f=open("E:/pythonLearn/140.txt") >>> f.seek(8) #如果文件里是汉字的话,这地方seek括号 ...
- 裸机——Nand
1.首先需要知道Nand的基础知识 从Nand的芯片手册可以获得 我使用的芯片手册是 K9F2G08 首先从芯片手册的名称可以获得信息: K9F:三星 2G : 2Gb (256MB) 08 ...
- B-树 动机与结构
Ps.我们遵循从感性到理性的认知顺序来逐步探索B-树的奥秘,之前经常说的value这里用key(关键码)指代,因为可能存的是字符串,说是value就不合适了. (多图预警!!!建议在WI-FI下观看) ...
- 4x4矩阵键盘 扫描程序
一:不排除第四位异常处理 uchar JuzhenkeyScan() { // P3=0xfe; // temp=P3; // while(temp!=0xfe) // { // temp=P3; / ...