ICode9

精准搜索请尝试: 精确搜索
  • leetcode每日刷题计划--day622019-12-08 11:50:40

    Num 62 不同路径 && Num 63 不同路径 || 两道题都是基础动态规划,注意求总可能的题是上一可能节点相加 虽然数据范围只有100*100,但是可能结果爆int的,用long表示 有障碍的就多了一个筛选条件 代码如下 class Solution { public: int uniquePaths(int m, int n) { int

  • 105. 从前序与中序遍历序列构造二叉树(深搜)2019-11-30 19:55:17

    注意: 二叉树中没有重复元素,有重复元素就搞不出来了. 1 /** 2 * Definition for a binary tree node. 3 * struct TreeNode { 4 * int val; 5 * TreeNode *left; 6 * TreeNode *right; 7 * TreeNode(int x) : val(x), left(NULL), right(NULL) {}

  • Feeding Chicken2019-11-23 14:51:42

    D - Feeding Chicken 从左上角开始,往右下角开始遍历,但是遍历的时候需要注意一点,就是遍历的时候需要连起来,就比如第一行从左往右进行遍历,但是第二行不能从左往右了,因为这样就分开了,所以第二行就应该从右往左遍历,因此,奇数行从左往右遍历,偶数行从右往左遍历。 实现代码: for(int i=1,

  • Codeforces Round #501 (Div. 3)2019-11-20 19:55:29

    A - Points in Segments 题意:implement #include<bits/stdc++.h> using namespace std; typedef long long ll; bool vis[105]; int ans[105], atop; void test_case() { int n, m; scanf("%d%d", &n, &m); while(n--) { int u,

  • HDU5952 dfs+剪枝2019-11-10 18:55:52

    题目分析: 对于给出的n个点和m条边,求这个图的完全联通子图的数量(每次查询的子图的大小为s),对于本题而言,很容易想到的是dfs暴力和这个点相连的所有的点,并且判断这个图是否是度为s 的完全联通子图,但是如果不作任何处理的话会超时,这里需要合理选择剪枝,排除不可能的查询 注意点: 1.用in[

  • [bzoj1202]狡猾的商人2019-11-09 13:05:44

    记si表示前缀和,由于账本可以为负,所以si本身是没有限制的,然后每一条消息相当于让某两天的差值确定,连一条边,之后在每一次消息中,先判断两点是否连通,连通就直接判断,不连通就加上这条边即可,这个东西可以用带权的并查集来维护 1 #include<bits/stdc++.h> 2 using namespace std; 3

  • CSP-S 模拟1052019-11-09 10:55:45

             小W的魔术    总的方案数减去满意的方案数    考虑s序列由原序列的两端拼合而成,或者就是两端中的一端    先看由两端拼合的方案,确定序列有长度x的前缀与S的前缀相同,那么有长度为len-x的后缀与S的后缀相同    为了不重不漏,序列的x+1的位置一定不

  • [bzoj1077]天平2019-11-05 13:05:55

    先考虑如何求出任意两数的最大差值和最小差值,直接差分约束建图跑floyd求最短路和最长路即可然后枚举i和j,考虑dA+dB和di+dj的关系,分两种情况移项,转化成dA-di和dj-dB的关系或dA-dj和di-dB的关系(只要有一个关系确定即确定)即可考虑(由于不等式都是两个变量,因此一定无法形成dA-dj和dB-di

  • 宜信的105条数据库军规2019-11-05 12:04:40

    作为一家金融科技企业,宜信的大量业务都依赖于数据库。如何提高公司整体数据库应用水平,是对DBA的一大挑战,也非常具有现实意义。笔者在宜信的多年工作中,与团队一起总结整理了针对传统关系型数据库的使用规则,并借助自研的数据库审核平台落地,借此帮助研发团队评估数据库开发质量,达到尽

  • [bzoj1068]压缩2019-11-04 10:01:36

    用f[i][j][0/1]表示区间[i,j],i之前有没有M的最少需要多少个字符,然后分两种情况:1.可以分为两个,转移到dp[l][mid][0]+1;2.枚举断点,但当前面有M时,后面的这个不能重复,因此只能写成r-k 1 #include<bits/stdc++.h> 2 using namespace std; 3 #define mid (l+r>>1) 4 int f[105][105][2

  • 《Python编程从0到1》笔记3——欧几里得算法2019-10-25 13:01:36

        本节以欧几里得算法(这是人类历史上最早记载的算法)为示例,向读者展示注释、文档字符串(docstring)、变量、循环、递归、缩进以及函数定义等Python语法要素。    欧几里得算法:“在数学中,辗转相除法,又称欧几里得算法(Euclidean algorithm),是求最大公约数的算法。辗转相除法首

  • 模板 - 单源最短路Dijkstra2019-10-21 19:02:15

    int dis[105]; bool vis[105]; priority_queue<pair<int, int> > pq; void dijkstra(int s, int n) { while(!pq.empty()) pq.pop(); for(int i = 1; i <= n; ++i) { dis[i] = 0x3f3f3f3f; vis[i] = 0; } dis[s] = 0

  • POJ - 1062 - 昂贵的聘礼 = Dijkstra2019-10-21 18:51:53

    http://poj.org/problem?id=1062 题意:有100个物品,每个物品有一个价格值,一个地位值,和他可以用别的物品来补差价换。求换到1号物品的最小代价。 意思就是给一个图,支付起点的点权,然后走边权走到1号点,求最小的代价,其中路上经过的地位值的差不能超过题目的限制。 最暴力的做法,枚举地位

  • 数字组合2019-10-02 10:50:26

    题目描述 思路 代码 #include <cstdio> int n, m; int sz[105]; int ans[105][10005]; int main() { scanf("%d %d", &n, &m); for (int i = 1; i <= n; ++i) scanf("%d", &sz[i]); for (int i = 0; i <= n; ++i) ans[i][0]

  • 石子合并问题2019-10-01 20:03:30

    经典石子合并问题 1.每次取任意两个堆合并,合并价值为两堆重量(价值)之和:   贪心,每次取最小的两堆(哈夫曼模型),优先队列可以直接写 2.每次取相邻两个堆合并,合并价值为两堆重量(价值)之和:   堆数很小的时候(堆数<3000大概):区间dp+平行四边形优化 #include<bits/stdc++.h>using namespa

  • UVA529 Addition Chains2019-09-22 12:00:28

    做题5分钟,调题一小时 总结错误: 1.剪枝 采用IDA*优化:估价函数就是每次最多增加两倍 因为序列单调递增,所以如果前面两数相加小于当前值,再往前找也没有意义 因为要尽量逼近n,所以要从后往前枚举 2.去重数组不好处理,会错,所以不能采用 Code #include<bits/stdc++.h>#pragma GCC optim

  • 母函数的一些简单想法(HDU2110)2019-09-21 16:02:40

    // 母函数解决的问题// n 种物品,每个有一个wi,组合成total价值有多少种组合方案// 将组合问题转换为 幂级数上的相乘问题(important) (Orz)// #include<iostream>// #include<cstdio>// #include<cstring>// using namespace std;// int n,a[105],b[105],m,s[10010],t[10010];//

  • P4016 负载平衡问题2019-09-20 23:01:57

    题目描述 G 公司有 n 个沿铁路运输线环形排列的仓库,每个仓库存储的货物数量不等。如何用最少搬运量可以使 n 个仓库的库存数量相同。搬运货物时,只能在相邻的仓库之间搬运。 输入格式 文件的第 1 行中有 1 个正整数 n,表示有 n 个仓库。 第 2 行中有 n 个正整数,表示 n 个仓库的库

  • LeetCode 62. Unique Paths2019-09-13 09:02:09

    题目 这是一道迷宫题目,其实很简单就是简单的动态规划题 class Solution { public: int dp[105][105]; int uniquePaths(int m, int n) { for(int i=0;i<n;i++) { for(int j=0;j<m;j++) { if(i==0&&j==0

  • LeetCode 63. Unique Paths II2019-09-13 09:01:58

    题目 水题,和上一题一样的。 class Solution { public: long long int dp[105][105]; int uniquePathsWithObstacles(vector<vector<int>>& obstacleGrid) { for(int i=0;i<obstacleGrid.size();i++) { for(int

  • 105. 从前序与中序遍历序列构造二叉树2019-09-12 19:09:16

    首先要知道一个结论,前序/后序+中序序列可以唯一确定一棵二叉树,所以自然而然可以用来建树。 看一下前序和中序有什么特点,前序1,2,4,7,3,5,6,8 ,中序4,7,2,1,5,3,8,6; 有如下特征: 代码如下 class Solution { public: TreeNode* buildTree(vector<int>& preorder, vector<i

  • FMLE同时推多路流到SRS异常,推1路则正常。2019-09-09 19:35:45

    同时推两路log: [2019-09-04 05:46:54.102][Trace][8386][105] RTMP client ip=::ffff:107.150.28.246, fd=9 [2019-09-04 05:46:54.333][Trace][8386][105] simple handshake success. [2019-09-04 05:46:54.333][Trace][8386][105] connect app, tcUrl=rtmp://107.150.28.24

  • 【XSY2271】青蛙(栈)2019-09-09 14:05:01

    题面 Description 从前有 nnn 块石头排成一排,编号从111到nnn。有 nnn 只青蛙站在这 nnn 块石头上,其中编号为 iii 的青蛙站在编号 iii 的石头上。 这 nnn 只青蛙有一个秘密计划,在某个风和日丽的早上,它们同时起跳,编号为 iii 的青蛙跳到编号为 pip_ipi​ 的石头上。跳跃之后,每

  • 洛谷 P1101单词方阵2019-08-23 20:55:27

    我已经,是这个世界上,最幸福的女孩了                                                                         ——《末日时在做什么,有没有空,可以来拯救吗?》 题目:https://www.luogu.org/problem/P1101 这一题开始我居然没看懂这是什么意

  • flody求图的最小环2019-08-21 22:02:10

    /* floyd求图的最小环:O(n^3) 无权图边权为1即可 对于无向图: 在flody外层循环至k时 我们求得了任意的i,j,允许经过[1...k-1]这些点的最短路径 如果此时对于任意的i,j,有g[k][i],dist[i][j],g[j][k]存在 且i,j,k两两不同,则说明存在一个k->i->j->k的一个环 对于有向图: 只

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

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

ICode9版权所有