洛谷1309 归并的思想
https://www.luogu.org/problemnew/show/P1309 开始是强行排序,过不去,后来瞥了一眼是归并排序,就写了归并排序,还是tle。看了人家的思路才发现问题,暴漏了自己的问题:思考的太少了。 因为变化并不是很大,每一轮比赛的胜者他们的score都+1,胜者的排序跟这场比赛开始之前一样,同样的,败者也是。这样在申请两个数组,一个装winner,一个装loser。
#include <bits/stdc++.h>
using namespace std;
cons
洛谷1164 动态规划
对于还是菜鸟的我来说,确实是一个很好的题目。第一眼是深搜,后来算一下大概是2^100的递归,肯定要凉。
#include <bits/stdc++.h>
using namespace std;
const int maxn=10005;
int v[105],dp[maxn];
int main()
{
int N,M;
cin>>N>>M;
int i,j,k;
for(i=1;i<=N;i++)
scanf("%d",&v[i]);
dp[0]=1;
for(i=1;i
洛谷3916 图的遍历 反向建图
https://www.luogu.org/problemnew/show/P3916 一:刚学图,考虑到了可能是不连通图的情况,进行了处理,但还是出了问题。直接正向dfs 错误代码如下,当然这样做也可以,因为我看有人居然对每一个点都dfs。。。还没超时。
//直接正向dfs的错误代码!!!
#include <bits/stdc++.h>
using namespace std;
const int maxn=1e5+5;
vector<int> v[maxn];
int a[maxn];
dijkstra 单源最短路
下面的解析是来自洛谷的题解。 前言 SPFASPFA算法由于它上限 O(NM) = O(VE)O(NM)=O(VE)的时间复杂度,被卡掉的几率很大.在算法竞赛中,我们需要一个更稳定的算法:dijkstradijkstra. 什么是dijkstradijkstra? dijkstradijkstra是一种单源最短路径算法,时间复杂度上限为O(n^2)O(n2)(朴素),在实际应用中较为稳定;;加上堆优化之后更是具有O((n+m)\log_{2}n)O((n+m)log2n)的时间复杂度,在稠密图
求逆元求组合公式(有取余)
https://blog.csdn.net/weixin_40149887/article/details/79861045 求解方法: 先算出n!%p、m!%p、(n-m)!%p,用fac[i]表示 i!%p 的值 因为组合数取模是(n!)/(m!(n-m)!)%p,因此需要计算出m!%p、(n-m)!%p的逆元,根据费马小定理,m!%p、(n-m)!%p的逆元分别是(m!)^(p-2)、((n-m)!)^(p-2) 快速幂取模求出(m!)^(p-2)%p、((n-m)!)^(p-2)%p,
洛谷1120 死在79分 神剪枝+前面搜索状态影响后面
If not me,who? 错误的思路, 我用了n个小时验证我的思路是有问题的。。。将小木棍从大到小排序后。然后开始从大的木棍开始选取,在选取下一个木棍的时候也是尽量从大的开始选取,但是问题就出现了,这样选取的结果可能不是最优的。。。(就是说会造成不恰当的选取),怎莫说呢,你第一个选取了第i个小木棍,作为初始的小木棍,然后又挑选了一个尽量大的小木棍,作为下一个选取的对象,这个时候两个大的小木棍叠加之后,可能还需要一个很小的木棍就能拼成了。但是我们的原则是尽量留小的木棍,可能本来我们用两个中等
尼克的任务 倒着dp
参考了大佬的代码,倒着dp,正向的思路想不起来。
#include <bits/stdc++.h>
using namespace std;
#define inf 0x3f3f3f3f
const int maxn=1e4+5;
struct Node{
int l,len;
bool operator<(const Node x)const{
return this->l>x.l;
}
}node[maxn];
int dp[maxn];
int main()
{
mems
洛谷 1525 关押罪犯
一道并查集,按照一般的思路是不能处理某一些情况的。 例如 1——2 3——4 1——5 3——5 在安排第二个关系的时候不确定把3放到1还是放到2,而这个关系的放置会直接影响第三个关系。当时想了好久都没有思路, 后来看了别人的代码,是用一个数组记录敌人的信息。这个用的真的很巧妙,用了这个数组之后,对于第二个关系来说,他们和第一个都没有关系,那着两个关系就不要合并,就避免了合并产生的错误。
//关押罪犯
#include <bits/stdc++.h>
using namespace std;
剑指Offer-调整数组顺序使奇数位于偶数的前面
题目描述 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。 题解:将整数数组中的奇数放在一个数组,将偶数放在另一个数组中,然后合并这两个数组的数据。
public class Solution {
public void reOrderArray(int[] array) {
//空数组,长度为1的数组或者是null则直接不用计算
if (array ==
剑指Offer-链表中倒数第k个节点
题目描述 输入一个链表,输出该链表中倒数第k个结点。 题解:先统计链表的总节点数,然后求出倒数第k个节点是顺序遍历的第几个节点。可以采用线性表存储每一个位置的节点,然后查找则比较快些,不用再遍历链表。
import java.util.ArrayList;
import java.util.List;
public class Solution {
public ListNode FindKthToTail(ListNode head, int k) {
//判断输入的是不是为空的链表
Mysql的7种join
Mysql的7种join,各种项目中,数据库经常用到,也是必不可少的,数据库查询中经常使用到两个表之间的查询甚至是多表之间的查询,以下列举了mysql的7种join语句。 建表语句 建两个表,有外键相关联的表。
create table user
(
id int primary key,
name char(11)
)engine=innodb;
create table role
(
rid int primary key,
rname char(11),
mac终端操作数据库--(5)一道综合题
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/kuangdacaikuang/article/details/82939954 mac终端操作数据库–(5)一道综合题 1. 题目 职员表 部门表 2. 创建数据库和表,插入数据 //登录MySQL
/usr/local/mysql/bin/mysql -u root -p
//创建数据库
1.create database zhouyu03;
2.use zhouyu03;
3.select
IntelliJ IDEA: Error:(11, 72) java: 程序包com.mysql.jdbc不存在
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/kuangdacaikuang/article/details/82940901 IntelliJ IDEA: Error:(11, 72) java: 程序包com.mysql.jdbc不存在 解决方法是可以在 [http://www.mysql.com/downloads/connector/j](http://www.mysql.com/downloads/connector/j) 手动下载
【5】Django项目配置settings.py详解
夫唯不争,故天下莫能与之争 ——老子《道德经》 本节内容 1.项目配置文件settings.py介绍 2.数据库配置【MySQL】 3.创建模型对象并和数据库同步 4.python官方提供的项目后台管理平台的使用 注意:本节内容我们会按照三部分进行分步讲解 我们创建好了一个Python项目(mysite/)之后,需要在项目中添加模块应用(polls/),在模块应用中添加处理功能逻辑,如添加模块中的视图处理函数(polls.views.index()),这是一个python项目简单的结构模型 但
Java基础_基础语法知识2
1.运算符 (1).什么是运算符 运算符是指对常量和变量进行操作的符号。用于操作我们定义的变量和常量进行处理。 (2).运算符的分类 A:算数运算符 B:赋值运算符 C:比较运算符 D:逻辑运算符 E: 位运算符 F:三目运算符 (3).算术运算符 A:'+' a=3,b=4,a+b=7 表示对变量或者常量进行数据的加法运算 B:'-' a=3,b=4,b-a=1 表示对变量或者常量进行数据的减法运算 a=-1 表示该常量数据是一个负数 C:'*' a=3,b=4,a*b=12 表示对变量或者
今日推荐
周排行