ICode9

精准搜索请尝试: 精确搜索
  • leetcode:1024. 视频拼接(中等,贪心)2021-02-04 21:05:22

    题目: 分析: 快3周没写代码了。以后再次恢复正常情况下每天1-3题吧。 不是区间dp问题,自己还是想了1-2min的。 一个贪心题,还是挺容易想的。 代码: class Solution { public: static bool cmp(vector<int> &a,vector<int> &b) { if(a[0]==b[0]) return a[1]<b[1

  • 【优化求解】遗传优化隶属度函数matlab源码2021-02-01 21:31:11

    遗传算法(Genetic Algorithm, GA)是模拟达尔文生物进化论的自然选择和遗传学机理的生物进化过程的计算模型,是一种通过模拟自然进化过程搜索最优解(所找到的解是全局最优解)的方法。 参数编码、初始群体的设定、适应度函数的设计、遗传操作设计、控制参数设定五个要素组成了遗传算法

  • UVA 1590 IP Networks 位运算2021-01-29 19:33:39

    //位运算 #include<iostream> #include<algorithm> #include<string> #include<map> #include<stdlib.h> using namespace std; typedef unsigned int uint; typedef long long ll; int main() { int m; while(~scanf("%d", &

  • P1420 最长连号2021-01-22 16:31:18

    #include<bits/stdc++.h> #include<algorithm> #include<iostream> #include<stdio.h> using namespace std; const int N=1e9; int main() { int n; cin>>n; int cnt=1; int maxx=0; int d; cin>>d; int j;

  • 2945:拦截导弹2021-01-20 23:00:10

    2945:拦截导弹 动态规划 题目链接 #include<iostream> #include<algorithm> using namespace std; int a[30], b[30] = { 0 }; int main() { int n; cin >> n; for (int i = 0; i < n; i++) { cin >> a[i]; } int maxx = 0; for (int i = 1; i < n

  • 剑指Offer04.二维数组中的查找(BST)2021-01-15 18:33:15

    原题链接 思路:这题乍看上去好像是一个二分,其实上有更优的解法,由于从右上角往左下角看刚好是一颗二叉搜索树的形状,因此可以把这个二维数组看作是一个BST,因此解法就是BST的查找功能在此数组中的实现,将右上角元素看为根节点,从根节点开始,如果当前元素小于目标元素则找他的左子树,大于则

  • POJ - 2689 Prime Distance2021-01-13 04:01:31

      代码: #include<iostream> #include<map> #include<vector> #include<algorithm> using namespace std; #define int long long #define debug(a) cout << #a << ' ' << a << '\n'; #define debug2(a

  • 2017省赛A第6题2021-01-09 23:59:17

    2017省赛A第6题 填空上:a[i][j] = a[i-1][j-1] + 1; #include<iostream> #include<cstring> using namespace std; const int N = 300; char a[N], b[N]; int vis[N][N]; int maxx = 0; void solve(const char* x, const char* y) { int lenx = strlen(x); int leny =

  • 12.26vj训练补题2021-01-03 10:32:39

    D.City Day 题意:就是给定n,x,y,以及这n天的下雨量ai,要求这一天的下雨量是这一天前x天到后y天的下雨量中最小的。输出最早的(下标最小的)d。保证答案一定存在 思路:直接遍历寻找就好了,做好标记 代码: 1 #include<iostream> 2 #include<algorithm> 3 #include<cstdio> 4 #include

  • 树与dfs.树的重心.acwing 8462020-12-29 17:02:44

    code: #include<bits/stdc++.h>//xfl using namespace std; const int N = 2e5+10; int h[N],ne[N],to[N],siz[N]; int n,num,minn=N; void add(int a,int b){ne[++num]=h[a];to[num]=b;h[a]=num;} void dfs(int x,int fa) { siz[x]=1; int maxx=0; for(in

  • 百年孤独2020-12-22 19:33:26

    ///矩阵连乘 #include<stdio.h> int p[602],m[602][602]; int main() { int t,n; scanf("%d",&t); while(t--){ scanf("%d",&n); for(int i=1;i<=n;i++){ scanf("%d %d",&p[i-1],&a

  • cf#690(div3)2020-12-19 19:33:13

    F. The Treasure of The Segments 链接 题意 有n条线段(1<= n <= 2e5),线段两端L,R(1<= L <= R <= 1e9) 问删掉最小数量的线段,使所有的线段不重合? 题解一 对于线段i来说,需要删掉T[j] 大于 a[i].s 的 以及 S[j]大于a[i].t。 #include <iostream> #include <cstdio> #include <alg

  • Game Map2020-12-08 00:01:39

    题目链接 这个题我用DFS做的,但好像也可以不用,如果用DFS的话需要用到剪枝,否则会超时。 #include <iostream> #include <stdio.h> #include <stdlib.h> #include <algorithm> #include <math.h> #include <map> #include <vector> #include <cstring> #include &

  • Codeforces Beta Round #73(Div2)2020-12-05 16:36:00

    C - Trains #include<bits/stdc++.h>#define ll long longusing namespace std;#define speed_up ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);/**/int gcd(int a,int b){ return b?gcd(b,a%b):a;}int main(){ speed_up; int a,b; cin>>a>

  • 牛客小题B2020-12-05 12:59:25

    链接 来源:牛客网 题目描述 给出一个仅包含小写字母的字符串s,你最多可以操作k次,使得任意一个小写字母变为与其相邻的小写字母(ASCII码差值的绝对值为1),请你求出可能的最长相等子序列(即求这个字符串修改至多k次后的的一个最长子序列,且需要保证这个子序列中每个字母相等)。 子序列:

  • 基础DP2020-12-02 22:02:01

    https://vjudge.net/contest/409169#problem/A A - Max Sum Plus Plus 题意:将一个长度为n的序列,分成m段不相交叉的子段,使得他们的和最大。 解题思路:状态dp[i][j]表示前j个数分成i组的最大值。 动态转移方程:dp[i][j]=max(dp[i][j-1]+a[j],max(dp[i-1][k])+a[j]) (0<k<j) dp[i][j-1]

  • LeetCode-11:盛水最多的容器2020-11-08 21:32:19

    题解   这一题很经典,难吗?,想得到还是挺简单的。        该题的正解是 双指针 + 贪心 的策略,在其首尾各放一个指针,每次移动指针指向高度较小的数向内侧移动,在不断移动的过程中记录Max即可。        为何能保证得到最优解呢?        以图示验证算法的正确性:      

  • QFNU-ACM 2020.10.23 Trating2020-10-31 17:00:58

    A 统计判断是不是由两种数构成,两种数的个数是不是相等 #include<bits/stdc++.h> using namespace std; int main() { int n,a[2]={0},cou=0,sum1=0,sum2=0,c; cin>>n; for(int i=0;i<n;i++){ cin>>c; if(c==a[0]){ sum1++; }e

  • leetcode845. 数组中的最长山脉2020-10-25 14:00:47

          这题说实话不难,处理起来不太好做,一点一点改改通过了 p数组里最后一个应该定为一个垃圾值让他不满足任何条件以表明这是最后一项 这个搜索到此要停止。 class Solution { public: int longestMountain(vector<int>& A) { if(A.size()==0){ ret

  • [ Vani有约会 ] 雨天的尾巴 /【模板】线段树合并2020-10-03 09:01:53

    题目链接 Solution 对每个节点维护一个权值线段树,线段树上就维护最大值以及最大值出现的节点。利用树上查分的思想,在 \(x\),\(y\) 位置 \(+1\),在 \(LCA(x, y)\) 位置 \(-1\),\(fa_{LCA(x, y)}\) 位置 \(-1\)。 更新完后不断把线段树向上合并。简单来说,当前线段树 = 该节点所有子树维

  • 2020中国大学生程序设计竞赛(CCPC)网络选拔赛总结2020-09-27 09:00:53

    1010 Reports 题目意思和请假有关,但是本质上的要求是“当且仅当不存在两个连续且相同的报告时”,也就是1和0必须交错存在 做法先输入再判断即可 代码: //去吧马里奥!把AC公主救回来! // ******** // ************ // ####....#. // #..###.....##.... //

  • 2020中国大学生程序设计竞赛(CCPC) - 网络选拔赛总结2020-09-26 21:01:30

    1003 Express Mail Taking 题意:有n个柜子(编号1-n),m封信,k号位置有钥匙,现在需要取信封,并且每取一次信封都要从k号位置进行领取一次钥匙,再去有信封的位置领取信封,问最短路径是多少 思路:建立两个数组,一个存从密码柜到信封柜加上信封柜到密码柜的距离,一个存从密码柜到信封柜加上信封

  • 洛谷 P41802020-09-01 08:02:43

    题目链接:P4180 [BJWC2010]严格次小生成树 题目大意 就是求严格次小生成树, 即找到一个生成树, 使其子树和大于最小生成树,且最小 solution 那我们怎么求呢? 我们先建出最小生成树肯定不亏,然后我们根据最小生成树的性质,每加入一条边会发现构成了一个环,然后呢我们在这个环中找到

  • 集训小模拟赛22020-08-02 16:00:49

    A.翻转游戏 题目描述 翻转游戏是在一个\(4*4\)的正方形上进行的,在正方形的\(16\)个格上每个格子都放着一个双面的物件。每个物件的两个面,一面是白色,另一面是黑色,每个物件要么白色朝上,要么黑色朝上,每一次你只能翻\(1\)个物件,从而由黑到白的改变这些物件上面的颜色,反之亦然。每一轮

  • light oj 1224 (字典树)2020-07-26 23:01:32

    本题题意是让你找出一个子字符串,使该字符串作为所有插入字符串前缀的次数 * 该字符串的长度 结果最大 所以我们可以在插入字符串的时候进行统计,用一个maxx和sum[root] ∗ 当前长度len 比较取大即可 #include<cstdio> #include<cstring> #include<algorithm> using namespace std;

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有