做网站 注册那类的商标/网站建设百度推广

做网站 注册那类的商标,网站建设百度推广,百度推广 帮做网站吗,开发公司交的农民工工资保证金可以退还吗简单贪心 1.P10452 货仓选址 - 洛谷 #include<iostream> #include<algorithm> using namespace std;typedef long long LL; const int N 1e510; LL a[N]; LL n;int main() {cin>>n;for(int i 1;i < n;i)cin>>a[i];sort(a1,a1n);//排序 LL sum 0…

简单贪心

1.P10452 货仓选址 - 洛谷

 

#include<iostream>
#include<algorithm>
using namespace std;typedef long long LL;
const int N = 1e5+10;
LL a[N];
LL n;int main()
{cin>>n;for(int i = 1;i <= n;i++)cin>>a[i];sort(a+1,a+1+n);//排序 LL sum = 0;//for(int i = 1;i <= n;i++)//{//	sum+=(abs(a[i]-a[(1+n)/2]));//}for(int i = 1;i <= n/2;i++){sum += abs(a[i]-a[n+1-i]);}cout<<sum<<endl;return 0;} 

2.P1115 最大子段和 - 洛谷

#include<iostream>using namespace std;typedef long long LL;const int N = 2e5+10;
LL a[N];
LL n;int main()
{cin>>n;for(int i = 1;i <= n;i++)cin>>a[i];LL sum = 0;LL ret = -1e5;for(int i = 1;i <= n;i++){sum+=a[i];ret = max(sum,ret);if(sum < 0)sum = 0;} cout<<ret<<endl;return 0;} 

舍弃的想法很大胆,也很有风险,但通过证明,就可以表示通过

3. P1094 [NOIP 2007 普及组] 纪念品分组 - 洛谷

#include<iostream>
#include<algorithm>
using namespace std;int w,n;
const int N = 3e4+10;
int a[N];int main()
{cin>>w>>n;for(int i = 1;i <= n;i++)cin>>a[i];//排序sort(a+1,a+1+n);int l = 1,r = n,ret = 0;while(l <= r){//最小和最大相加小于w,符合 ,同时异位 if(a[l]+a[r]<=w)l++,r--;//l待定。r-- else{r--;}ret++;}cout<<ret<<endl;return 0;}

 4.P1056 [NOIP 2008 普及组] 排座椅 - 洛谷

#include<iostream>
#include<algorithm>
using namespace std;int m, n, k, l, d;
const int N = 1010;struct  node
{int index;//存行列的下标int cnt;//存取该行或者该列能隔开多少对同学
}row[N],col[N];//按照cnt从大到小排列
bool cmp1(node& x, node& y)
{return x.cnt > y.cnt;
}
//按照下标从小到大排列
bool cmp2(node& x, node& y)
{return x.index < y.index;
}int main()
{cin >> m >> n >> k >> l >> d;//初始化数组,赋值indexfor (int i = 1; i <= m; i++)row[i].index = i;for (int i = 1; i <= n; i++)col[i].index = i;//计算cntwhile (d--){int x, y, p, q; cin >> x >> y >> p >> q;if (x == p)col[min(y, q)].cnt++;elserow[min(x, p)].cnt++;}//通过cnt把大的排在前面-->cmp1sort(row + 1, row + 1 + m, cmp1);sort(col + 1, col + 1 + n, cmp1);//把前k或者l大的按照下表从小到大进行排列sort(row + 1, row + 1 + k, cmp2);sort(col + 1, col + 1 + l, cmp2);//输出//行for (int i = 1; i <= k; i++){cout << row[i].index << " ";}cout << endl;//列for (int i = 1; i <= l; i++){cout << col[i].index << " ";}return 0;
}

1.把每一行和每一列可以隔开的同学记录到cnt中

2.按照cnt从大到小进行排列

3.按照index对前k或者l个进行从小到大的排列

4.输出前k 或 l的index下标

4.矩阵消除游戏 

 

#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;int calc(int x)
{int ret = 0;while (x){x = x & (x - 1);ret++;}return ret;
}bool cmp(int x, int y)
{return x > y;
}int n, m,k;
const int N = 100;
int a[N][N];
int col[N];int main()
{cin >> n >> m >> k;for (int i = 0; i < n; i++){for (int j = 0; j < m; j++){cin >> a[i][j];}}int sum = 0, ret = 0;//暴力枚举所有的第一行for (int st = 0; st < (1 << n); st++){sum = 0;int num_1 = calc(st);//超过就不要了if (num_1 > k)continue;memset(col, 0, sizeof(col));for (int i = 0; i < n; i++){//加上当前行的数字for (int j = 0; j < m; j++){if (((st >> i) & 1) == 1){sum += a[i][j];}else{col[j] += a[i][j];}}}//对列进行从大到小排序,取前k - num_1个int remain = k - num_1;sort(col, col + m, cmp);for (int i = 0; i < remain; i++)sum += col[i];ret = max(ret, sum);}cout << ret << endl;return 0;
}

推公式

1.在确定好的顺序序列中,拿出相邻的两个元素
2.交换这两个元素,对前面和后面确定好顺序的序列的结果不造成影响
3.根据这两个原色交换前后的结果推导出排序的规

1.P1012 [NOIP 1998 提高组] 拼数 - 洛谷

#include<iostream>#include<algorithm>
using namespace std;int n;
const int N = 25;
string st[N];bool cmp(string& x, string& y)
{return x + y > y + x;
}int main()
{cin >> n;for (int i = 0; i < n; i++)cin >> st[i];sort(st, st+n, cmp);for (int i = 0; i < n; i++)cout << st[i];return 0;
}

 比较方法:两两元素相拼,

2.P2878 [USACO07JAN] Protecting the Flowers S - 洛谷

很震惊!! 

1.在确定好的顺序序列中,拿出相邻的两个元素
2.交换这两个元素,对前面和后面确定好顺序的序列的结果不造成影响
3.根据这两个原色交换前后的结果推导出排序的

#include<iostream>
#include<algorithm>
using namespace std;typedef long long LL;LL n;
const int N = 1e5+10;
struct node
{LL t;//时间LL d;//吃草速度 
}a[N]; bool cmp(node& x,node&y)
{return x.t*y.d < x.d*y.t;
}int main()
{cin>>n;for(int i = 1;i <= n;i++){cin>>a[i].t>>a[i].d;}sort(a+1,a+n+1,cmp);LL ret = 0,t = 0;for(int i = 1;i <= n;i++){ret += a[i].d*t;t += 2*a[i].t;}cout<<ret<<endl;} 

3. P1842 [USACO05NOV] 奶牛玩杂技 - 洛谷

#include<iostream>
#include<algorithm>using namespace std;typedef long long LL;const int N = 5e4+10;
int n;struct node
{LL w;LL s;	
}a[N];
//推公式得到,把max中较小的放在前面,会让总体压力值变得较小 
bool cmp(node&x,node&y)
{return max(-x.s,x.w-y.s) < max(-y.s,y.w-x.s);
}int main()
{cin>>n;for(int i = 1;i <= n;i++){cin>>a[i].w>>a[i].s;}sort(a+1,a+1+n,cmp);LL w = 0;LL ret = -1e5;for(int i = 1;i <= n;i++){ret = max(ret,w - a[i].s);w+=a[i].w;}cout<<ret<<endl;return 0;} 

哈夫曼树 

1.P1090 [NOIP 2004 提高组] 合并果子 - 洛谷 

#include<iostream>
#include<queue>
#include<vector>
using namespace std;typedef long long LL; priority_queue<LL,vector<LL>,greater<LL>>heap;LL n;
int main()
{cin>>n;for(int i = 1;i <= n;i++){LL x;cin>>x;heap.push(x);}LL sum = 0;while(heap.size()>1){LL x = heap.top();heap.pop();LL y = heap.top();heap.pop();sum+=(x+y);heap.push(x+y);} cout<<sum<<endl;
}

 区间问题

这种题⽬的解决⽅式⼀般就是按照区间的左端点或者是右端点排序,然后在排序之后的区间上,根据 题⽬要求,制定出相应的贪⼼策略,进⽽得到最优解。

具体是根据左端点还是右端点排序?升序还是降序?⼀般是假设⼀种排序⽅式,并且制定贪⼼策略, 当没有明显的反例时,就可以尝试去写代码。

1.P1803 凌乱的yyy / 线段覆盖 - 洛谷

#include<iostream>
#include<algorithm>
using namespace std;
const int N = 1e6+10;
int n;
struct node
{int s;int e;
}a[N];bool cmp(node&x,node&y)
{return x.s < y.s;} int main()
{cin>>n;for(int i = 1;i <= n;i++){cin>>a[i].s;cin>>a[i].e;}sort(a+1,a+1+n,cmp);//按照起点开始由小到大的顺序排列int ret = 1;int r = a[1].e;for(int i = 2;i <= n;i++){int right = a[i].e,left = a[i].s;if(left < r)//重叠了,不能参加,如果重叠的右端比前面那一个还小,那就贪,覆盖前面哪一个 {r = min(r,right);}else{ret++;//没有重叠,可以参加r = right;//更新较小的r } }cout<<ret<<endl;return 0;} 

 

2.UVA1193 Radar Installation - 洛谷

按照左端点排序,互相重叠的区间是连续的 

二维问题转化成一维问题 

证明: 按照左端点排序,互相重叠的区间是连续的 

#include<iostream>
#include<cmath>
#include<algorithm>
using namespace std;const int N = 1e3+10;int n,d;
struct node
{double l;double r;
}a[N];bool cmp(node&x,node&y)
{return x.l < y.l;
}
int main()
{int cnt = 1;while(cin>>n>>d&&(n&&d)){int flag = 1;for(int i = 1;i <=		 n;i++){int x,y;cin>>x>>y;if(y > d)flag = -1;//把二维映射到一维上去double l =  sqrt(d*d - y*y);a[i].l = x - l;a[i].r = x + l;}sort(a+1,a+1+n,cmp);int ret = 1;int r = a[1].r; cout<<"Case "<<cnt<<": ";cnt++; for(int i = 2;i <= n;i++){int left = a[i].l,right = a[i].r;if(left<=r)//等于也可以扫到 {//扫描通过r =  min(r,right);}else{ret++;r = right;}}cout<<ret<<endl;
}return 0;} 

3.P2887 [USACO07NOV] Sunscreen G - 洛谷

 

#include<iostream>
#include<algorithm> 
using namespace std;const int N = 3e3+10;int n,l;
struct node
{int l;//表示奶牛耐受的最小值//防晒霜的防晒值 int r;//奶牛耐受的最大值// 防晒霜的数量 
}a[N],b[N]; bool cmp(node&x,node&y)
{return x.l > y.l;
}
int main()
{cin>>n>>l;for(int i = 1;i <= n;i++){cin>>a[i].l>>a[i].r;//输入奶牛耐受值 }for(int i = 1;i <= l;i++){cin>>b[i].l>>b[i].r;//输入防晒霜的防晒值和数量 }//按照奶牛奶牛左端从大到小进行排序sort(a+1,a+1+n,cmp);//按照防晒霜防晒值从大到小进行排序sort(b+1,b+1+l,cmp);int ret = 0;for(int i = 1;i <= n;i++){//选择一种防晒霜for(int j = 1;j <= l;j++)	{if(b[j].r == 0)continue;if(b[j].l<=a[i].r&&b[j].l>=a[i].l){//符合条件,ret++,数量-- ret++;b[j].r--;break;//选完一个就直接除去,免得后面的都没了 }}} cout<<ret<<endl;return 0; 
}

 4.P2859 [USACO06FEB] Stall Reservations S - 洛谷

#include<iostream>
#include<queue> 
#include<algorithm>
using namespace std;
const int N = 5e4 + 10;
int n;
struct node
{int l;//牛牛的开始//该牛棚的结束时间 int r;//牛牛的结束 //该牛棚的编号 int num;//这只牛的编号 bool operator<(const node& y)const{return l > y.l;//创建小根堆 }
}a[N];
bool cmp(node& x, node& y)
{return x.l < y.l;
}
int res[N];//记录每只牛进入的牛棚顺序 
priority_queue<node> heap;//建议一个关于牛棚结束时间的小根堆,找出当前技术时间最早的,拉出来 
int main()
{cin >> n;for (int i = 1; i <= n; i++){cin >> a[i].l >> a[i].r;a[i].num = i;}//按照左端点从小到大排列sort(a + 1, a + 1 + n, cmp);int ret = 1;//记录牛棚状态heap.push({ a[1].r,1 });res[a[1].num] = 1; //一号牛进一号棚 for (int i = 2; i <= n; i++){int l = a[i].l, r = a[i].r;int ete = heap.top().l;int num_peng = heap.top().r;if (ete >= l)//如果最短结束时间都>这只牛的开始的起始时间,那么就必须新开一个牛棚 {ret++;heap.push({ r,ret });res[a[i].num] = ret;}else//可以拿下 {heap.pop();//结束不要了 heap.push({ r,num_peng });//把这只牛推入彭中 res[a[i].num] = num_peng;}}cout << ret << endl;for (int i = 1; i <= n; i++)cout << res[i] << endl;
}

P2859 [USACO06FEB] Stall Reservations S - 洛谷

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/73431.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux 网络:skb 数据管理

文章目录 1. 前言2. skb 数据管理2.1 初始化2.2 数据的插入2.2.1 在头部插入数据2.2.2 在尾部插入数据 2.2 数据的移除 3. 小结 1. 前言 限于作者能力水平&#xff0c;本文可能存在谬误&#xff0c;因此而给读者带来的损失&#xff0c;作者不做任何承诺。 2. skb 数据管理 数…

批量给 Excel 添加或删除密码保护|Excel 批量设置打开密码和只读密码

我们在将 Excel 文档发送给第三方或者进行存档的时候&#xff0c;对 Excel 文档添加密码保护是非常重要的一个操作。添加保护后的 Excel 文档。就只能有相应权限的用户才能够打开或者编辑操作。尤其是当我们 Excel 文档中内容非常敏感非常重要的时候&#xff0c;添加保护就显得…

蓝耘MaaS平台:阿里QWQ应用拓展与调参实践

摘要&#xff1a;本文深入探讨了蓝耘MaaS平台与阿里QWQ模型的结合&#xff0c;从平台架构、模型特点到应用拓展和调参实践进行了全面分析。蓝耘平台凭借其强大的算力支持、弹性资源调度和全栈服务&#xff0c;为QWQ模型的高效部署提供了理想环境。通过细化语义描述、调整推理参…

使用 Docker 部署前端项目全攻略

文章目录 1. Docker 基础概念1.1 核心组件1.2 Docker 工作流程 2. 环境准备2.1 安装 Docker2.2 验证安装 3. 项目配置3.1 项目结构3.2 创建 Dockerfile 4. 构建与运行4.1 构建镜像4.2 运行容器4.3 访问应用 5. 使用 Docker Compose5.1 创建 docker-compose.yml5.2 启动服务5.3 …

springboot集成flink实现DM数据库同步到ES

前言 今天分享的其实是一个面试上机方案&#xff0c;就是监测DM数据库数据&#xff0c;同步到ES&#xff0c;使用flink实现。基本套路&#xff0c;其实也没啥好说的&#xff0c;非要说也就是&#xff0c;国家队还是很多不跟你玩啊&#xff0c;虽然flink有阿里在背后&#xff0c…

【蓝桥杯】24省赛:数字串个数

思路 本质是组合数学问题&#xff1a; 9个数字组成10000位数字有9**10000可能 不包括3的可能8**10000 不包括7的可能8**10000 既不包括3也不包括77**10000 根据容斥原理&#xff1a;结果为 9 ∗ ∗ 10000 − 8 ∗ ∗ 10000 − 8 ∗ ∗ 10000 7 ∗ ∗ 10000 9**10000 - 8**10…

Unity开发中对象池设计与使用

一、设计目的 为了避免频繁创建和销毁对象&#xff08;例如 UI 元素、事件对象等&#xff09;带来的内存分配和垃圾回收压力&#xff0c;可以使用对象池来管理对象来提高游戏的性能&#xff0c;避免游戏卡顿。 二、代码实现 public interface IRecycle {/// <summary>…

JVM并发编程AQSsync锁ReentrantLock线程池ThreadLocal

并发编程2 synchronized锁实现**AQS****ReentrantLock实现****JUC 常用类**池的概念 ThreadLocalThreadLocal原理内存泄露强引用:软引用弱引用虚引用ThreadLocal内存泄露 synchronized锁实现 synchronized是一个关键字,实现同步,还需要我们提供一个同步锁对象,记录锁状态,记录…

【JavaEE】网络原理之初识

1.❤️❤️前言~&#x1f973;&#x1f389;&#x1f389;&#x1f389; Hello, Hello~ 亲爱的朋友们&#x1f44b;&#x1f44b;&#xff0c;这里是E绵绵呀✍️✍️。 如果你喜欢这篇文章&#xff0c;请别吝啬你的点赞❤️❤️和收藏&#x1f4d6;&#x1f4d6;。如果你对我的…

操作系统-八股

进程基础&#xff1a; 进程定义&#xff1a;运行中的程序&#xff0c;有独立的内存空间和地址&#xff0c;是系统进行资源调度和分配的基本单位。 并发&#xff0c;并行 并发就是单核上面轮询&#xff0c;并行就是同时执行&#xff08;多核&#xff09;&#xff1b; 进程上下…

chrome浏览器插件拓展捕获页面的响应体内容

因为chrome extension官方没有的直接获取响应体的方法&#xff0c;所以需要自己实现方法来获取&#xff0c;实现的方式有很多种&#xff0c;这是记录的第二种&#xff0c;第一种就是使用vconsole来实现&#xff0c;vconsole是一个开源框架&#xff0c;一个轻量、可拓展、针对手…

沐数科技数据开发岗笔试题2025

描述性统计 标准差 答案: A 解析: 标准差 衡量数据集中数值变化或离散程度的一种度量。它反映了数据集中的各个数值与数据集的平均值&#xff08;均值&#xff09;之间的偏离程度。标准差越大&#xff0c;表明数据的分布越分散&#xff1b;标准差越小&#xff0c;表明数据…

Qt-ZMQ的使用补充(pub-sub)

之前写过一篇Qt使用ZMQ的博客Qt网络编程-ZMQ的使用&#xff0c;本文是其的补充部分。 Linux上编译使用 首先这次实在Linux上进行演示&#xff0c;下载zmq源码&#xff0c;安装cmake&#xff0c;使用cmake进行编译。下载之后解压&#xff1a; 输入命令&#xff1a; cd ..mkdi…

记录致远OA服务器硬盘升级过程

前言 日常使用中OA系统突然卡死&#xff0c;刷新访问进不去系统&#xff0c;ping服务器地址正常&#xff0c;立马登录服务器检查&#xff0c;一看磁盘爆了。 我大脑直接萎缩了&#xff0c;谁家OA系统配400G的空间啊&#xff0c;过我手的服务器没有50也是30台&#xff0c;还是…

[测试]自动化的概念 及使用Selenium实现Web自动化测试

文章目录 1. 自动化1.1 自动化概念1.2 自动化分类1.2.1 接口自动化1.2.2 UI自动化 1.3 自动化测试金字塔 2. Web自动化测试2.1 驱动 3. Selenium3.1 一个简单的Web自动化示例3.2 Selenium 驱动 浏览器的工作原理 1. 自动化 1.1 自动化概念 自动化是指自动地代替人的行为完成…

Python教程(三):类对象、闭包、装饰器、类型注解、MRO

Python总结&#xff08;三&#xff09; 本系列其他教程&#xff1a; Python教程(一)&#xff1a;基本语法、流程控制、数据容器 Python教程(二)&#xff1a;函数、异常、模块&包、文件读取、常用模块 文章目录 Python总结&#xff08;三&#xff09;一、类&对象1.1 成…

什么是 HTML?

HTML 是用来描述网页的一种语言。 HTML 指的是超文本标记语言: HyperText Markup LanguageHTML 不是一种编程语言&#xff0c;而是一种标记语言标记语言是一套标记标签 (markup tag)HTML 使用标记标签来描述网页HTML 文档包含了HTML 标签及文本内容HTML文档也叫做 web 页面 HT…

如何用AI制作PPT,轻松实现高效演示

如何用AI制作PPT&#xff0c;轻松实现高效演示&#xff01;在今天这个快节奏的时代&#xff0c;我们的工作方式越来越依赖智能工具。而当涉及到演示文稿时&#xff0c;传统的PPT制作方式往往繁琐且耗时。很多人一提到制作PPT就头大&#xff0c;特别是在内容需要多次修改、调整布…

Canoe Panel基础功能介绍

文章目录 一、新建 Panel 面板二、添加 Panel 面板三、删除 Panel 面板四、Panel视图&#xff08;views&#xff09;五、控件布局1. 对齐布局2. 控件大小布局 六、Panel 属性设置1. 设置背景色和背景图片2. 调整 Panel 画布大小 提示&#xff1a;如何使用 Panel 面板参考 CANoe…

超声重建,3D重建 超声三维重建,三维可视化平台 UR 3D Reconstruction

1. 超声波3D重建技术的实现方法与算法 技术概述 3D超声重建是一种基于2D超声图像生成3D体积数据的技术&#xff0c;广泛应用于医学影像领域。通过重建和可视化三维结构&#xff0c;3D超声能够显著提高诊断精度和效率&#xff0c;同时减少医生的脑力负担。本技术文档将详细阐述…