自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(25)
  • 问答 (1)
  • 收藏
  • 关注

原创 QT:事件分发器

在mylabel.h中重写事件分发器 //通过event事件分发器 拦截 鼠标按下事件 bool event(QEvent *e);在mylabel.cpp中实现bool myLabel::event(QEvent *e){ //如果是鼠标按下,在event事件分发中做拦截 if(e->type()==QEvent::MouseButtonPress){ //静态转型 QMouseEvent * ev=static_cast&lt

2021-10-24 17:29:24 241

原创 JDBC批处理

使用批处理之前向表中添加5000条数据所花的时间 public void noBatch() throws Exception{ Connection connection= JDBCUtils.getConnection(); String sql="insert into admin2 values(null,?,?)"; PreparedStatement preparedStatement = connection.prepareStatement

2021-10-19 20:43:43 86

原创 JDBC常用API总结

1.DriverManager(驱动管理类)1.1getConnection(url,user,pwd) 获得连接 //获取相关的值 String user = properties.getProperty("user"); String password = properties.getProperty("password"); String driver = properties.getProperty("driver"); Strin

2021-10-19 15:05:45 151

原创 QT:添加资源文件

1.在Explorer中打开2.将需要的资源复制到该文件夹下3.创建Qt Resource File4.5.生成

2021-10-18 15:43:16 88

原创 QT:对话框

模态开启时不能对其他窗口进行操作创建方式 connect(ui->actionnew_2,&QAction::triggered,[=](){ //对话框分类 //模态对话框(不可以对其他的窗口进行操作) 非模态对话框(可以对其他的窗口进行操作) //模态创建 QDialog dlg(this); dlg.resize(200,100); dlg.exec();//创建 qDebug(

2021-10-18 14:19:44 197

原创 QMainWindow

1.菜单栏一系列操作 //菜单栏最多只能有一个 //菜单栏创建 QMenuBar * Bar= menuBar(); //将菜单栏放入到窗口中 setMenuBar(Bar); //创建菜单 QMenu * fileMenu = Bar->addMenu("文件"); QMenu * editMenu = Bar->addMenu("编辑"); //创建菜单项 QAction * newfile= fileMenu-&g

2021-10-14 22:14:21 86

原创 连接数据库的五种方式

方式1 //1.注册驱动 Driver driver = new Driver(); //2.得到连接 //(1)jdbc:mysql:// 规定好的协议,通过jdbc的方式连接数据库 //(2)localhost主机地址,可以是IP //(3)3306表示mysql监听接口 //(4)cyy_db02表示连接到mysql dbms的哪个数据库 //(5)mysql连接本质为soc

2021-10-14 11:25:18 1270

原创 Educational Codeforces Round 105 (Rated for Div. 2)Berland Crossword

一、题意: 有一个n*n的正方形,在四条边上有一定数量的黑点,问是否存在这样的正方形。二、思路: 当黑点存在于正方形的四个角的位置时,这个黑点会被两条边所占用,所以他会被记录两次。因为只有四个角,所以可以通过二进制枚举所有的情况,再判断是否存在这样的正方形。(应该可以暴力枚举所有情况,但是我不会QAQ)cpp代码#include<iostream>#include<cstdio>#include<cstring>#include<string>

2021-03-03 12:16:38 200

原创 Codeforces Round #704 (Div. 2) Genius‘s Gambit

传送门一、题意: 给出a个0和b个1,组合出两个含有a个0和b个1的数的二进制形式,并且最高位不为0,问是否存在两个数相减的结果中含有k个1。若存在输出Yes和这两个数,否则No。二、思路: 经过构造样例可以发现一个规律:1…00…1假设该数二进制长度为len,省略号位置若对应的位置同为1或者同为0,此时相减将会得到len-1个1。所以只需要能够构造出一个长度为k+1的字段,就存在这样的两个数字。cpp代码#include<stdio.h>#include<iostrea

2021-02-24 21:06:18 79

原创 Codeforces Round #700 (Div. 2)D1 - Painting the Array I

传送门一、题意: 将数组a分为0和1两个部分,分类完后需要分别将相邻的相同元素合并,合并后统计个数相加,要求总和达到最大值。二、思路: 可以开两个栈s1,s2,正常分类方法就是s1放一个然后s2放一个,如果遇到跟栈顶相同的就要特判然后放到另外一个栈中。但是还有一种情况要注意:可能a[i]与s1的栈顶不同但是a[i+1],a[i+2]与s1的栈顶相同,但是根据上面的轮换规则该轮应将a[i]放在s2中,如果这样做可能会导致a[i+1]与s1栈顶合并,就会导致种类减少,所以需要特判。cpp代码#incl

2021-02-08 12:06:31 176

原创 Educational Codeforces Round 103 (Rated for Div. 2)D - Journey

一、题意:有n+1个城市从0到n,输入一个只含有L和R的字符串,如果str[i]=L,说明存在一条从i通向i-1的单向路,如果str[i]=R,说明存在一条从i-1到i的单向路。每次移动都会改变所有道路的朝向,计算从每个城市出发所能达到的城市个数(包括自身)。二、思路:可以使用dp的做法。因为道路会改变朝向,所以如果能从i->j,那么肯定能从j->返回。设L[i]为从i可以往左移动的最远距离,r[i]为i往右移动的最远距离,那么L[i]+R[i]+1就是从城市i出发可以到达的所有城市数

2021-02-01 21:11:10 177

原创 HDU - 5920 Ugly Problem

一、题意: 输入一个数字,要求每次减去一个回文数,在50次以内减到0,输出次数和每个减去的回文数。二、思路: 因为是大数,所以涉及到大数的加减,需要用字符串模拟。我们每次可以取字符串的前面一半,然后-1,再将该数字反转,拼凑起来形成一个回文数。因为-1,所以形成的数字一定比原来的数字要小,但在这里要注意原数字的奇偶性。cpp代码#include<iostream>#include<algorithm>#include<cstring>#include&lt

2021-01-31 18:02:30 67

原创 Educational Codeforces Round 103 (Rated for Div. 2) C - Longest Simple Cycle

一、题意: 有n条链,第i条链上有c[i]个点,a[i]为第i条链的顶点与第i-1条链的连接点,b[i]为第i条链的最后一个点与第i-1条链的连接点。存在一个环,环上的每个点都只被访问一次,问该环的最大长度为多少。二、思路: 一开始看到还以为是个图论,实际上并没那么难QAQ我们可以反向遍历c[i],当我们遍历到c[i]的时候,c[i]上的点都已经被算上了,然后就开始看a[i]与b[i]。可以设置一个ans1和一个ans2,ans1是指从a[i]和b[i]向着两个端点的点的个数,ans2是指从a[i]

2021-01-30 01:32:56 177

原创 Codeforces Round #698 (Div. 2)C Nezzar and Symmetric Array

传送门一、题意 现在有一个长度为2n的数组d,它可能是由一个长度为2n的数组a转变而来的,而数组a是一个对称数组(不存在重复的数字,并且对于每个a[i],总能找到一个a[j]==-a[i]),而d[i]是该位置的a[i]与其他所有2n-1个位置的元素的差的绝对值之和。问是否存在这样一个数组a,若存在输出YES,否则NO二、思路 经过多组样例测试我们可以发现一个规律,当|a[i]|>|a[j]|时,a[i]与a[j]和与-a[j]的差的绝对值之和会等于2a[i]。假设|a[i]|为a数组中的最大

2021-01-29 11:22:01 164

原创 HDU-6005 Pandaland

dijkstra求最小环,要先将坐标变为序号,然后删除每一条边,再求最短路,最后再与删除边的边权相加。代码#include<iostream>#include<algorithm>#include<cstring>#include<string>#include<map>#include<queue>#include<vector>#include<stack>//#define int lo

2021-01-28 20:15:46 74

原创 计蒜客 - T3337

一、题意: 给定n个数字,参数m,k,在n个数字中选择k个数字,选择第i个数字的花费为j为上一次选择的数字的下标,问如何选择才能使得花费最小。二、思路: 我们可以用dp来解决,设dp[i][j]为选择到i个数并且j为第i个数的花费,则可以有状态转移方程为*dp[j][i] = min(dp[j][i], dp[t][i - 1] + a[j] * a[j] + max(p, m - j + t)max(p, m - j + t)); t为k-1次选择的第k-1个数字的下标。在这里需要做一个小小的优化

2021-01-28 17:22:59 181

原创 计蒜客 - T3224

一、题意: 有n个黑球和m个白球,有n个空盒子,问如果黑球和白球不装在同一个盒子中,将所有的球都装进盒子里(可以有空盒子)的方案数有多少。答案需对998244353取模。二、思路: 如果没有白球,就相当于将n个黑球装进n个盒子里(可空)的方案数,答案就是C(2n-1,n-1)如果有白球,则可以从1到n-1遍历(因为至少要有一个盒子装白球,所以只能遍历到n-1)。将n个黑球放入i个盒子(不空)的方案数为C(n-1,i-1),在n个盒子中选i个盒子的方案数为C(n,i),剩下的n-i个盒子中放白球(可空)

2021-01-28 16:30:19 214

原创 HDU1599 find the mincost route

最小环模板题#include<iostream>#include<algorithm>#include<cstring>#include<string>#include<map>#include<queue>#include<vector>#include<stack>#define int long long using namespace std;const int inf = 1e8;

2021-01-27 20:59:48 77

原创 Codeforces Round #697 (Div. 3)E - Advertising Agency

组合数模板题= =#include<iostream>#include<algorithm>#include<cstring>#include<string>#include<map>#include<queue>#include<vector>#include<stack>#define int long long using namespace std;const int mod = 1

2021-01-27 12:03:57 110

原创 Codeforces Round #697 (Div. 3)D Cleaning the Phone

一、题意: 有n个应用程序,每个应用程序占用a[i]个内存,便利点为b[i],每删除一个应用程序会释放a[i]个内存,损失b[i]个便利点,问需要释放至少m个内存所损失的便利点最少为多少,若不存在则输出-1。二、思路: 因为便利点只有1和2,所以我们可以将便利点为1和便利点为2的程序分开为两个数组a1,a2,然后分别按照内存从大到小排序。然后对a2做前缀和处理,遍历a1,然后用二分查找的方式在前缀和中找到符合pre[i]>=m-a1的位置,计算所需的便利点。代码#include<iost

2021-01-27 10:38:39 76

原创 Codeforces Round #696 (Div. 2)C. Array Destruction

传送门一、题意: 输入一个n,然后输入一个长度为2n的数组,一开始可以选择任意一个数字x,接下来每一轮可以进行以下两个操作:1、选择数组中的两个元素a[i]和a[j],a[i]+a[j]==x,然后将**a[i]和a[j]**从数组中删除。2、x 更新为 max(a[i],a[j]) 。问是否能将数组清空,若可以输出YES,第一个选择的x,和每一对元素,否则输出NO。二、思路: 先将数组排序,然后从数组当前最大值开始匹配,因为如果选择了一对x,y小于数组当前最大值,后面就没有机会再消去最大值。代

2021-01-24 21:54:05 70

原创 Codeforces Round #696 (Div. 2)B Different Divisors

传送门一、题意 输入一个d,找到一个最小的xx 需要满足的条件至少有4个因子

2021-01-24 21:40:12 106

原创 Codeforces Round #695 (Div. 2) B. Hills And Valleys

题意: t组数据,每组输入一个长度为n的序列,如果a[i]<a[i+1]>a[i+2],则称之为山峰,如果a[i]>a[i+1]<a[i+2],则称之为山谷。我们可以修改数组中的一个数据,求数组中最少的山谷和山峰之和。思路: 在输入时可以将山峰和山谷的位置标记起来,在修改数据的时候在标记点修改是最优的,可以将a[i]改为a[i-1]和a[i+1]。如果a[i-1]和a[i+1]都为标记点,则判断两边哪一边的贡献更大。如果只有单边,则要注意,因为可能会出现修改后有新的山峰/山谷

2021-01-09 21:02:30 90

原创 Codeforces Round #694 (Div. 2) F Strange Housing

**题意:**有n个房间,m条通道,其中的一些房间中会居住着教师,教师的房间有三点要求1: 两个教师房间不能由一条通道直接相连,只能间接相连2: 如果两个房间中都没有教师,它们之间的直接通道将被关闭3: 在关闭掉2条件中的通道之后,整幅图为连通图(包括有教师的房间和无教师的房间)如果存在这样的图则输出YES和居住教师的房间的个数和房间号,否则输出NO思路: 一开始没有看清题目,以为要求找到可居住的房间的个数的最大值,一直没想到复杂度足够低的方法,实际上只需要输出任意方案。很容易可以发现,只要图是

2021-01-08 20:35:54 268

原创 Codeforces Round #694 (Div. 2) D.Strange Definition

传送门:https://codeforces.com/contest/1471/problem/D题意:在一组长度为n的数组中,如果存在a[i],a[j]满足lcm(a[i],a[j])/gcd(a[i],a[j]) 为一个完美开方数,则称a[i]与a[j]为相邻数(j可以等于i)。di为与a[i]为相邻数的数字个数。每秒钟会将同类的相邻数相乘并代替原数字,如20,5,80为一组相邻数,一秒后就变为8000,8000,8000。接下来有q次询问,每次输入一个w,问w秒后d的最大值。思路:因为lcm(x,

2021-01-07 16:01:17 978

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除