首页 > 其他分享 >7.20周五总结

7.20周五总结

时间:2024-07-20 16:29:38浏览次数:12  
标签:总结 int 7.20 周五 second maxn mp pair first

上午 vjcon3补题

vj3

优先队列维护贪心

image

取一个数的各位只需要
a/100%10,a/10%10,a%10;

去重

bool(int n)
{
    set<int>st;
    for(int j=0;j<n;j++)
    {
        st.insert(a[i][j]);
        
    }
    if(st.size()!=n)
    return 1;
    return 0;
}

中位数 (思维)

#include<bits/stdc++.h>
using namespace std;

int main()
{
    int n,m;
    int s1=0,s2=0;
    scanf("%d%d",&n,&m);
    for(int i=1;i<=n;i++){
        int buf;
        scanf("%d",&buf);
        if(buf<m) s2++;
        else s1++;
    }
    /**
    这样理解吧,记大于等于m的数为ai,小于m的为bj。
    每一个含p个bj的序列,就要有p+1个ai的元素
    统计ai与bj的数,直接做差跟0取最值即可
    **/
    printf("%d\n",max(0,s1-s2));
    return 0;
}

下午

map和pair,vector

#include <bits/stdc++.h>
using namespace std;

const int maxn = 2e5 + 5;

// 存每个数的因数对
vector<pair<int, int>> q[maxn];

int main() {
    // 示例数据填充
    q[1].push_back({1, 1});
    q[2].push_back({1, 2});
    q[2].push_back({2, 1});

    // 访问第 i 对元素,示例以 i=2 为例
    int i = 2;  // 这里的 i 是你想要访问的索引

    if (!q[i].empty()) {  // 确保 vector 不为空
        // 访问第一个 pair
        pair<int, int> p = q[i].front();  // 获取第一个 pair

        // 获取第一个和第二个元素
        int first = p.first;
        int second = p.second;

        cout << "First element: " << first << endl;
        cout << "Second element: " << second << endl;

        // 删除第一个 pair
        q[i].erase(q[i].begin());  // 删除第一个 pair
    } else {
        cout << "The vector is empty!" << endl;
    }

    return 0;
}

// 示例操作:访问第二个 pair 元素的第一个和第二个元素
if (q[i].size() > 1) {  // 确保 vector 至少有两个元素
    pair<int, int> p = q[i][1];  // 访问第二个 pair
    int first = p.first;
    int second = p.second;

    cout << "First element of second pair: " << first << endl;
    cout << "Second element of second pair: " << second << endl;
}

// 示例操作:打印所有因数对
for (const auto& p : q[i]) {
    cout << p.first << " " << p.second << endl;
}

// 示例操作:清空整个 vector
q[i].clear();

map

#include <bits/stdc++.h>
using namespace std;

int main() {
    // 创建一个 map<int, int>
    map<int, int> mp;
    mp[1] = 10;
    mp[2] = 20;
    mp[3] = 30;

    // 获取第一个键值对
        if (!mp.empty()) {  // 确保 map 不为空
        auto it = mp.begin();  // 获取指向第一个键值对的迭代器

        int key = it->first;   // 获取第一个键
        int value = it->second; // 获取第一个值
		auto it = mp.begin();  // 获取第一个键值对的迭代器
        int key = (*it).first;   // 访问键
        int value = (*it).second; // 访问值

总结 it->first 或 (*it).first

        cout << "First key: " << key << endl;
        cout << "First value: " << value << endl;
    } else {
        cout << "The map is empty!" << endl;
    }

    return 0;
}
auto it = mp.begin(); // 获取第一个键值对
while (it != mp.end()) {
    cout << "Key: " << it->first << ", Value: " << it->second << endl;
    ++it;  // 移动到下一个键值对
}

mp.erase(1);  // 删除键为 1 的元素
auto it = mp.begin();
mp.erase(it);  // 删除迭代器指向的元素

auto it = mp.find(2);  // 查找键为 2 的元素
if (it != mp.end()) {
    cout << "Found key 2 with value: " << it->second << endl;
} else {
    cout << "Key 2 not found" << endl;
}


运用 求解因数对数量

点击查看代码
#include<bits/stdc++.h>
using namespace std;
const int maxn=1e7+10;
int n,m;
bool st[maxn];
vector<pair<int,int>> a;
int q[maxn];
int la[maxn];
int main()
{
	ios::sync_with_stdio(false);
	cin.tie(0),cout.tie(0);
	cin>>n;
	for(int i=1; i<=n; i++)
	{
		int x;
		cin>>x;
		if(st[x]==1)
		{
			a.push_back({q[x],x/q[x]});
			st[x]=0;
		}


		else
		{
			int f=0;
			for(int j=la[x]+1; j*j<=x; j++)
			{
				la[x]=j;
				if(x%j==0)
				{
					a.push_back({j,x/j});
					if(j!=x/j)
					{
						q[x]=x/j;
						st[x]=1;
					}
					f=1;
					break;
				}

			}


			if(f==0)
			{
				cout<<"NO"<<endl;
				return 0;

			}
		}
	}
	cout<<"YES"<<endl;
	for(auto t:a)
	{
		cout<<t.first<<" "<<t.second<<endl;
	}
}

飞机降落

没看懂呢
image
image

晚上

标签:总结,int,7.20,周五,second,maxn,mp,pair,first
From: https://www.cnblogs.com/hoshino-/p/18312668

相关文章

  • 第二周进度总结
    第二周总结:配置环境变量可以在任意目录下打开指定软件。方法:打开我的电脑,空白处右键后点击属性,点击高级系统设置,点击高级,点击环境变量,找到path处,点击编辑,新建后粘贴即可。文件夹含义:bin:各种工具和命令。conf:相关配置文件。include:平台特定的头文件。jmods:各种模块。leg......
  • 2024/7/20周末总结
    本周,我完美完成了PTA基础编程题目集中的函数部分。对阶乘计算的进阶方法这道上周无法通过的题目进行了学习和复现通过。对超大数的输出方式有了新的理解。同时,完成了编程题三分之一的题目,其中,由于BCD数中需要实现位运算而有些难以理解外,其他均以C++通过。关于本周Java的学习,......
  • 7.20解决hive无法删除和修改的问题
    参考文献:hiveupdate和delete报错Attempttodoupdateordeleteusingtransactionmanager-CSDN博客 首先说明,hive数据库一般是增和查询用得比较多,不建议频繁的去修改删除,有悖hive数据库的初衷。废话不多说,开始配置,首先找到你的hive-site.xml的路径 一般来说是在hive的......
  • 线程池 --- 基础总结
    使用线程池主要为了解决一下几个问题:通过重用线程池中的线程,来减少每个线程创建和销毁的性能开销。对线程进行一些维护和管理,比如定时开始,周期执行,并发数控制等等。一、Executor接口关系Executor是一个接口,跟线程池有关的基本都要跟他打交道。下面是常用的ThreadPoolExecu......
  • 2024/07/19(暑假学习hadoop第二周总结)
    本周的学习任务主要是完成Hadoop中有关的组件的配置。有关于此配置的过程严格按照黑马程序员大数据入门到实战教程,大数据开发必会的Hadoop、Hive,云平台实战项目全套一网打尽_哔哩哔哩_bilibili来进行配置。首先就是HDFS的配置,这是Hadoop分布式文件系统,用于在多个服务器上构建存储......
  • LeetCode题练习与总结:比较版本号--165
    一、题目描述给你两个 版本号字符串 version1 和 version2 ,请你比较它们。版本号由被点 '.' 分开的修订号组成。修订号的值 是它 转换为整数 并忽略前导零。比较版本号时,请按 从左到右的顺序 依次比较它们的修订号。如果其中一个版本字符串的修订号较少,则将缺失......
  • FreeRTOS【面试】实时操作系统的知识总结
    RTOS的实时性是如何实现的?任务之间是如何通信的?二值信号量与互斥信号量的区别?优先级反转?如何解决优先级反转问题?任务通知是怎么实现的?框架性的回答一个嵌入式系统Freertos的启动到结束的过程?任务切换的原理? 除了任务切换对freertos其他底层了解吗?讲讲FreeRT......
  • Llama系模型总结
    Llama3学习链接https://blog.csdn.net/v_JULY_v/article/details/137955982就不易理解的内容进一步剖析对Llama系模型进行汇总目录一、LLama11.LLama1简介2.模型架构2.1RMSNorm2.2SwiGLU替代ReLU2.3位置编码:RoPE2.4Transform架构的实现:Attention计算、SA、FFNSAFFNTr......
  • 周总结7.19
    本周开始主要学习了黑马程序员中MYSQL的进阶篇,学习了1.存储引擎:INNODB,MYISAM,MEMORY,主要需要明白INNODB的特点事务,行级锁,外键;2.索引:是一种高效获取数据的数据结构,索引结构:B+Tree,Hash。B+Tree是主要的索引,最终在叶子结点会存储数据,并形成双向链表,提高了查询的效率,并且由于分叶子结......
  • Go语言读取文件方法大总结
    前言在Golang中读取文件。我们将使用以下包来处理这些文件。os 包提供了一个独立于平台的接口来执行操作级操作。IOutil 软件包提供了易于使用的实用程序函数来处理文件,而无需了解太多内部实现。bufio 包实现了缓冲IO,这有助于我们提高输入和输出操作的性能和吞吐量。lo......