七夕学算法

目录

P1031 [NOIP2002 提高组] 均分纸牌

原题链接 :

题面 : 

 思路 :

代码 : 

P1036 [NOIP2002 普及组] 选数

原题链接 :

题面 : 

思路 :

代码 : 

P1060 [NOIP2006 普及组] 开心的金明

原题链接 : 

题面 : 

 思路 : 

01背包例题 :

代码 :  

P1100 高低位交换

原题链接 : 

题面 : 

 思路 :

代码 : 

P1097 [NOIP2007 提高组] 统计数字

原题链接 

题面 : 

 ​编辑

思路 : 

代码 1: map + set

 代码 2  : 数组排序


视频链接 : Erik_Tse

P1031 [NOIP2002 提高组] 均分纸牌

原题链接 :

         均分纸牌

题面 : 

 思路 :

  根据贪心的思想,肯定是先将第一堆的纸牌弄成n张,再去弄后面的!

循环往后,如果当前队中牌数小于n,从下一堆中移差值牌数过来,

如果大于的话,就将差值牌数移给下一堆。最后一定就是满足题目要求的!!!

所以请看代码 : 

代码 : 

#include <iostream>
#include <string>
#include <algorithm>
#include <cmath>
#include <vector>
using namespace std;
typedef long long LL;
const int N = 102;
int n,a[N];
LL ans,sum,avg,k;
int main() {cin>>n;for(int i=1;i<=n;i++) cin>>a[i],sum+=a[i];avg = sum / n;for(int i=1;i<=n;i++){if(a[i] < avg){k = avg - a[i];a[i] += k;a[i+1] -= k;ans ++;}if(a[i] > avg){k = a[i] - avg;a[i] -= k;a[i+1] += k;ans ++; }}cout<<ans<<endl;return 0;
}

P1036 [NOIP2002 普及组] 选数

原题链接 :

 选数

题面 : 

思路 :

就是一个dfs找子集的问题,没什么好说的,详细请看代码 !!!

实现组合型枚举例题 : 实现组合型枚举

代码 : 

#include <iostream>
#include <string>
#include <algorithm>
#include <cmath>
#include <vector>
using namespace std;
typedef long long LL;
const int N = 22;
int n,a[N],k;bool is_prime(int x){//判断素数模板,要记住 if(x < 2) return false;for(int i=2;i<=x/i;i++) if(x%i == 0) return false;return true;
}LL dfs(int dep,int cnt,int sum){ if(cnt == k) return (int)is_prime(sum);//找到k个元素if(dep > n) return 0;//搜索到数组最后一个元素,退出// 子集问题,选或不选 两个分支 :  // 选 : dfs(dep+1,cnt,sum) // 不选 : dfs(dep + 1,cnt + 1 , sum + a[dep])LL res = 0;res += dfs(dep + 1 , cnt , sum);res += dfs(dep + 1 , cnt + 1 , sum + a[dep]); return res;
}int main() {cin >> n >> k;for(int i=1;i<=n;i++) cin>>a[i];// dfs(dep,cnt,sum)// dep : 下标 // cnt : 当前选了几个数 // sum : 当前选数之和  cout << dfs(1,0,0) << endl;return 0;
}

P1060 [NOIP2006 普及组] 开心的金明

原题链接 : 

开心的金明

题面 : 

 思路 : 

本质上就是一个01背包问题,分选和不选两种情况!!!不懂得可以看01背包例题 : 

01背包例题 :

 2. 01背包问题 - AcWing题库

代码 :  

#include <iostream>
#include <string>
#include <algorithm>
#include <cmath>
#include <vector>
using namespace std;
typedef long long LL;
const int N = 3e4+10;
int n , m;
int v[27],w[27];
LL dp[30][N];//表示从前i个物品中选,重前不过j的最大价值 int main() {cin >> n >> m;for(int i=1;i<=m;i++) cin >> v[i] >> w[i];// 本质 : 01背包 for(int i=1;i<=m;i++){for(int j=0;j<=n;j++){if(j < v[i]) dp[i][j] = dp[i-1][j];else dp[i][j] = max(dp[i-1][j], dp[i-1][j-v[i]] + v[i]*w[i]);}}cout<<dp[m][n]<<endl;return 0;
}

P1100 高低位交换

原题链接 : 

高低位交换 - 洛谷

题面 : 

 思路 :

位运算,模拟即可

代码 : 

#include<iostream>
using namespace std;
typedef long long LL;
LL x,ans,st,en;
int main()
{scanf("%lld",&x);st = x >> 16;en = x % (65536);en = (en << 16);ans = en + st;printf("%lld",ans); return 0;
}

P1097 [NOIP2007 提高组] 统计数字

原题链接 

统计数字

题面 : 

 

思路 : 

用map+set : 

代码 1: map + set

#include <iostream>
#include <string>
#include <algorithm>
#include <cmath>
#include <vector>
#include <unordered_map>
#include <set>
using namespace std;
typedef long long LL;
const int N = 3e4+10;
int m,x;
unordered_map<int,int> mp;
set<int> st;int main() {cin >> m;while(m--){cin>>x;mp[x]++;st.insert(x);}for(auto it = st.begin() ; it != st.end() ; it ++){cout << *it << " " << mp[*it] << endl;}return 0;
}

 代码 2  : 数组排序

#include <iostream>
#include <string>
#include <algorithm>
#include <cmath>
#include <vector>
#include <unordered_map>
#include <set>
using namespace std;
typedef long long LL;
const int N = 2e5+10;
int n, a[N], cnt;int main() {cin >> n;for(int i=1;i<=n;i++) cin>>a[i];sort(a+1,a+1+n);for(int i=1;i<=n;i++){cnt ++;if(i==n || a[i]!=a[i+1]){cout<<a[i] <<" "<<cnt<<endl;cnt = 0;}}return 0;
}

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

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

相关文章

Windows下搭建Tomcat HTTP服务,发布外网远程访问

文章目录 前言1.本地Tomcat网页搭建1.1 Tomcat安装1.2 配置环境变量1.3 环境配置1.4 Tomcat运行测试1.5 Cpolar安装和注册 2.本地网页发布2.1.Cpolar云端设置2.2 Cpolar本地设置 3.公网访问测试4.结语 前言 Tomcat作为一个轻量级的服务器&#xff0c;不仅名字很有趣&#xff0…

网络安全等级保护2.0

等保介绍 信息系统运维安全管理规定&#xff08;范文&#xff09;| 资料 等保测评是为了符合国家法律发挥的需求&#xff0c;而不是安全认证&#xff08;ISO&#xff09; 一般情况没有高危安全风险一般可以通过&#xff0c;但若发现高位安全风险则一票否决 二级两年一次 三…

多线程——学习记录2

目录 单例模式两种单例写法饿汉式和懒汉式的区别 RuntimeTimer 计时器两个线程间的通信关键点&#xff1a;wait()线程等待 和 notify()随机唤醒等待的线程; 三个或三个以上间的线程通信关键点&#xff1a;notifyAll()唤醒所有线程 线程间通信需要注意的问题JDK1.5的新特性互斥锁…

vue vs react vue3 和 react区别

vue 简介&#xff1a;渐进式 JavaScript 框架 来源&#xff1a;最初由 Evan You &#xff08;尤雨溪&#xff09;于2014年开发。Evan You之前在Google研究过AngularJS&#xff0c;并提取了Angular的部分特性以提供一个更轻量级的框架 版本&#xff1a; vue 1x&#xff1a;2014…

面试热题(复原ip地址)

有效 IP 地址 正好由四个整数&#xff08;每个整数位于 0 到 255 之间组成&#xff0c;且不能含有前导 0&#xff09;&#xff0c;整数之间用 . 分隔。 例如&#xff1a;"0.1.2.201" 和 "192.168.1.1" 是 有效 IP 地址&#xff0c;但是 "0.011.255.24…

SpringBoot 01 如何创建 和pom的解析

目录 1 Springboot的创建 步骤 2 项目的书写和运行 创建service包并在其下写一个service文件 项目的运行 pom文件的一些配置 parent web test 打包 打包过程 1 Springboot的创建 步骤 首先new一个新项目 然后依照如下创建 2 项目的书写和运行 创建service包并…

MySQL MVCC的详解之Read View

文章目录 概要一、基于UNDO LOG的版本链1.1、行记录结构1.2、了解UNDO LOG1.3、版本链 二、Read View2.1、判定机制 三、参考 概要 在上文中&#xff0c;我们提到了MVCC&#xff08;Multi-Version Concurrency Control)多版本并发控制&#xff0c;是通过undo log来实现的。那具…

低代码系列——初步认识低代码

低代码系列目录 一、初步认识低代码 二、低代码是什么 三、低代码平台的概念和分类 01.无代码开发平台 02.低代码应用平台(LCAP) 03.多重体验开发平台(MXDP) 04.智能业务流程管理套件(iBPMS) 四、低代码的能力指标 五、低代码平台jnpf 表单 报表 流程 权限 一、初步认识低代码 …

隧道HTTP具备的条件

作为一名专业的爬虫代理供应商&#xff0c;我们都知道使用代理是保证爬虫的高效性和稳定性的重要手段之一。而隧道代理则是近年来备受推崇的一种代理形式&#xff0c;它通过将请求通过隧道传输&#xff0c;可以有效地隐藏爬虫的真实IP地址&#xff0c;提高爬虫的反爬能力。 在…

Maven 一键部署到 SSH 服务器

简介 利用 Maven Mojo 功能一键部署 jar 包或 war 包到远程服务器上。 配置 在 maven 的setting.xml 配置服务器 SSH 账号密码。虽然可以在工程的 pom.xml 直接配置&#xff0c;但那样不太安全。 <servers><server><id>iq</id><configuration&…

完全免费的GPT,最新整理,2023年8月24日,已人工验证,不用注册,不用登录,更不用魔法,点开就能用

完全免费的ChatGPT&#xff0c;最新整理&#xff0c;2023年8月24日&#xff0c;已人工验证&#xff0c; 不用注册&#xff0c;不用登录&#xff0c;更不用魔法&#xff0c;点开就能用&#xff01; 第一个&#xff1a;网址地址统一放在文末啦&#xff01;文末直达 看上图你就能…

无涯教程-PHP - Session选项

从PHP7 起&#xff0c; session_start()()函数接受一系列选项&#xff0c;以覆盖在 php.ini 中设置的会话配置指令。这些选项支持 session.lazy_write &#xff0c;默认情况下此函数为on&#xff0c;如果会话数据已更改&#xff0c;则会导致PHP覆盖任何会话文件。 添加的另一个…

[JavaWeb]【八】web后端开发-Mybatis

目录 一 介绍 二 Mybatis的入门 2.1 快速入门 2.1.1 准备SpringBoot工程 2.1.2 创建数据库mybatis以及对应库表user 2.1.3 创建User实体类 2.1.4 配置application.properties数据库连接信息 2.1.5 编写sql语句&#xff08;注解方式&#xff09; 2.1.6 测试运行 2.1.7 配…

通过浏览器控制台使用js脚本进行浏览器操作(定时点击等)

进行此操作前我们首先需要了解js编程语言 --了解之后我们就可以去操作了 这里我们拿csdn评论举例子&#xff1b; 点开评论界面右键审查元素 此时我们需要找到输入框dom和评论按钮dom 点击元素之后点击箭头然后去界面上选中文本框核按钮 然后我们就可以知道这个文本框的id 同…

POI groupRow 折叠分组,折叠部分不显示问题

折叠组是什么&#xff1f;如图就是用POI 实现的&#xff0c;代码很简单&#xff1a;sheet.groupRow(开始行&#xff0c;结束行)即可 但是万万没想到&#xff0c;最终实现出的结果&#xff0c;合并的组&#xff0c;有一部分并没有渲染出来&#xff0c;如下图&#xff1a; 因为我…

分布式下的session共享问题

首页我们确定在分布式的情况下session是不能共享的。 1.不同的服务&#xff0c;session不能共享&#xff0c;也就是微服务的情况下 2.同一服务在分布式情况&#xff0c;session同样不能共享&#xff0c;也会是分布式情况 分布式下session共享问题解决方案(域名相同) 1.session复…

【leetcode 力扣刷题】交换链表中的节点

24. 两两交换链表中的节点 24. 两两交换链表中的节点两两节点分组&#xff0c;反转两个节点连接递归求解 24. 两两交换链表中的节点 题目链接&#xff1a;24. 两两交换链表中的节点 题目内容&#xff1a; 题目中强调不能修改节点内部值&#xff0c;是因为如果不加这个限制的话…

java.lang.IllegalStateException: Failed to load ApplicationContext异常

错误原由 今天在编写SpringBoot项目整合MyBatis框架的过程中&#xff0c;产生了这个错误 java.lang.IllegalStateException: Failed to load ApplicationContextat org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheA…

Linux和其他类Unix系统的GNU coreutils 知多少

GNU coreutils是GNU项目的一部分&#xff0c;它是一组基本的命令行工具集&#xff0c;用于操作和管理Linux和其他类Unix系统中的文件和数据流。这些工具被广泛用于终端和脚本中&#xff0c;提供了许多常用的功能和实用程序。Linux和其他类Unix系统的GNU coreutils 知多少&#…

用 VB.net,VBA 两种方式 读取单元格内的 换行数据,并出力到 CSV文件

用 VB.net&#xff0c;VBA 两种方式 读取单元格内的 换行数据&#xff0c;并出力到 CSV文件 需求 如下图所示&#xff0c;为了生成csv文件导入数据库&#xff0c;需要将下图 的 1 和 2 拼接成 如下 3 所示的一行数据&#xff0c; 开头为 1 &#xff0c;往后为 2 的换行数据 将换…