2 AKone123456

尚未进行身份认证

我要认证

暂无相关简介

等级
TA的排名 7k+

HTML5---重点记录学习笔记

JQuery 语言中$('.username') 选择器基于元素名选择元素 或者提取选择器内的元素(例:选择器基于.username元素名选择其元素)$(selector)selector:返回给JQuery()的原始选择器$(docoument).ready(); 方法允许我们在文档完全加载后执行函数type='text' , $('.username ').val()获取(.username)选择器中的元素 为text文本 .val()不写参数为获得参数.va

2020-09-23 00:59:45

不要62--------------------------------思维(数位dp)

解析:预处理:f[i][j]:表示第i位,最高位为 j限制条件:最高位不能选4 第i位不能选6且第i-1位不能选2所以状态转移:f[i][j]+=f[i-1][k] (j!=4 && k!=4 &&(j!=6&&j!=2))数位dp分析:在树上进行决策对于第An-1位0~An-1-1 放到左子树 An-1 放到右子树计算左子树可能的情况 因为不能存在4或者62连起来的。所以用一个last记录 上一位是什么满足 (j!=4&.

2020-09-22 18:52:58

位运算之谜---------------------------思维(位运算技巧+套路题)

解析:a xor b 相当于是不进位的加法(a&b)<<1 表示加法的进位所以得出公式 a+b == a xor b +(a&b)<<1那么 a xor b ==a+b-2*(a&b)又因为 a+b=x, a&b= y;所以 a xor b = x-2*y;存在两种不可能的存在,第一种就是a xor b <0第二种就是 a xor b 和 a&b 是相互取反的。其他情况只要输出 x-2y 即可#inclu..

2020-09-21 15:47:18

51NOD1277 字符串中的最大值----------------------思维(kmp)

解析:#include<bits/stdc++.h>using namespace std;const int N=1e6+1000;typedef long long ll;int f[N];ll dp[N];char s[N];int n;void init(){ f[0]=-1; for(int i=2,j=0;i<=n;i++) { while(j&&s[i]!=s[j+1]) j=f[j]; if(s[i]==..

2020-09-16 14:20:30

51NOD 1686 第K大区间-----------------------思维(二分+双指针+套路题)

解析:套路! 套路! 套路! 一定要谨记!!!!!!!!套路二分枚举答案t。二分check的条件就是判断有多少个区间的众数>t对于check的判断我详细说明一下(利用双指针) 先枚举右端点假设有个序列: 1 2 3 1 4 3假设二分的t=1;那么对于[1,4]区间的众数是num[1]=2 那么有多少个区间满足num[1]=2呢?(这边的套路就要开始了)我们发现[1,5],[1,6]都满足条件,所以当区间的众数>t 则产生的贡献就是n-i+1然后我们需要移动左.

2020-09-14 19:57:41

D - Redistribution-----------------------思维(dp)

解析:设f[i]:表示用3~i数凑出和为i的方案数f[i]=f[i-3]+f[i-4]+f[i-5]+…+f[i-i]#include<bits/stdc++.h>using namespace std;typedef long long ll;const int N=3000;const int MOD=1e9+7;ll f[N];int s;int main(){ cin>>s; f[0]=1; for(int i=3;i<=s;i++..

2020-09-14 15:14:50

51NOD 3061车--------------------------------思维(最大生成树+倍增)

解析:最大生成树可以求得最大载重路径,因为本题求得最大载重最小是多少,所以我们利用最大生成树找出路径之后,重新建图。然后在新图上倍增求得最大值最小是多少?#include<bits/stdc++.h>using namespace std;const int N=1e5+10;int e[N<<1],ne[N<<1],w[N<<1],h[N],idx;int fa[N],depth[N],q,m,n,u,v;int f[N][20],mi[N..

2020-09-13 16:09:58

问题 I: Two Famous Companies-----------思维(二分+MST)

题意:给定n个点,m条边,两个点之间用线连接起来。要么是联通的线,要么是移动的线,问必须要选k条电信线的最小生成树是多少解析:再求生成树的时候会遇到两种情况。 cnt为选择电信线的个数第一种 k>cnt 说明我们在选择边的时候,电信线的权值都很大,所以选的很少第二种 k<cnt 说明我们在选择边的时候,电信线权值很小,我们都会优先选择处理的方法就是对于第一种我们可以给电信线权值都减小,使其得到满足对于第二种我们可以给电信线权值都增加,使其得到满足所以我们二分出一个增量mi..

2020-09-11 14:05:51

模板-----------------------(树同构+重心)

#include <iostream>#include <cstdio>#include <algorithm>#include <unordered_map>#include <vector>#include <map>#include <list>#include <queue>#include <cstring>#include <cstdlib>#include

2020-09-01 15:19:07

1573 美丽的集合-------------------思维(启发式合并+bitset)

解析:利用启发式合并 nlogn然后利用bitset来维护集合中不同和的次数合并的时候用链表连接同一集合的元素用en[]更新每个集合的最后一个元素是谁#include<bits/stdc++.h>using namespace std;const int N=1005;bitset<100005>f[N];int fa[N],size[N],nx[N],a[N],en[N];int n,m;int find(int x){ if(fa[x]!=x) ...

2020-09-01 14:18:32

1556 计算-----------------------------思维(默慈金数+组合数学)

解析:本题用到了默慈金数https://www.cnblogs.com/yaoyueduzhen/p/5456530.html如果a[i-1]=1 那么第i位只有两种取值的结果如果a[i-1]>1 那么第i位只有三种取值的结果所以设f[i]:1~x的总的方案数设a[i]:1~x第i位为1的方案数那么递推方程就是f[i]=f[i-1]*3-a[i-2]因为本题求得是(0,1)~(n,x)的总方案数而默慈金数求得是(0,0)~(n,0)的总方案数所以我们用总的方案数-不满足的方案数..

2020-09-01 10:58:33

问题 E: Songwriter------------------思维(构造)

解析:我们先从后往前遍历求出每个位置的可以取值范围的上下限设up[i]:为第i位置的上限设down[i]:为第i位置的下限分为三种情况第一种情况 a[i]==a[i+1] 那么up[i]=up[i+1],down[i]=down[i+1]第二种情况 a[i]<a[i+1] 那么上限最多up[i]=up[i+1]-1;那么下限down[i]=max(down[i+1]-k,l) 要么就是前一个的下限-k 要么就是l 两者取最大第三种情况 a[i]>a[i+1] 那么下限就是...

2020-08-31 13:46:31

问题 K: Addition Robot---------------------------思维(线段树维护矩阵乘法)

解析:线段树维护区间矩阵乘法。每个节点都要维护矩阵因为本题有两个公式 A=A+B; B=A+B矩阵A: [AB]\begin{bmatrix}A &B\end{bmatrix}[A​B​] * [1011]\begin{bmatrix}1 & 0\\ 1 & 1\\\end{bmatrix}[11​01​] = [A+BB]\begin{bmatrix}A+B & B \end{bmatrix}[A+B​B​]矩阵B: [AB]\begin{...

2020-08-31 12:41:45

问题 A: 20190-----------------------思维(组合递推+套路)

解析:由于要按照2019这个顺序递推,所以设‘2’=a ‘0’=b ‘1’=c ‘9’=d递推的方程式a=(a+1)%MODb=(b+a)%MODc=(c+b)%MODd=(d+c)%MOD这样就可以保证顺序的问题不会出错#include <bits/stdc++.h>using namespace std;typedef long long ll;const int MOD=1e9+7;ll a,b,c,d;char s[1000005];int main(..

2020-08-29 23:45:16

E. Clear the Multiset-------------------思维(分治+套路)

题意:给定n个数,2种操作第一种操作:横切切到底第二种操作:竖切切到底请问最少操作使得n个数为0解析:第一种横切得贡献是每次找到最小的然后切去,然后分治递归下去,详细看代码第二中竖切得贡献是r-l+1;两者取最小值。#include <bits/stdc++.h>using namespace std;const int N=1e5+100;int a[N];int n;int solve(int l,int r){ if(l>r) return..

2020-08-26 21:43:02

D. Zigzags----------------------------思维(暴力+前缀和)

解析:枚举j和l 然后n^2暴力统计j左边的数出现的次数。枚举l的时候,如果出现a[j]==a[l],就要累加上[j,l]区间的 [1,j-1]这些数出现的次数即可,详细看代码吧,说的不咋地#include <iostream>using namespace std;typedef long long ll;int cnt[3005];int a[3005];int t,n;int main(){ cin>>t; while(t--)..

2020-08-26 17:22:43

C. Binary String Reconstruction------------------------思维(模拟)

解析:暴力模拟#include <iostream>using namespace std;string s;int t,n,x;int a[200050];int main(){ cin>>t; while(t--) { cin>>s; cin>>x; int n=s.size(); s='0'+s; for(int i=0;i&l..

2020-08-26 17:11:28

B. RPG Protagonist-------------------思维(贪心)

解析:对于刀和剑,我们肯定贪心选择单位最少的一个。那么我们枚举刀选了多少把假设刀选了i把那么主人要选剑的时候就是num1=min(cntw,(p-i*s)/w) 要减去选刀的代价跟随者也肯定选择单位最少的一个,所以跟随着一开始也选刀 那么就是num2=(cnts-i,f/s) 因为主人一开始选了i把需要减去跟随着选剑的时候num3=min(cntw-num1,(f-num2*s)/w)因为主人一开始选了剑所以要减去。又因为跟随者算了刀,携带的单位就要减去。枚举的答案就是 i+num1..

2020-08-26 16:57:27

Dropping tests-------------------------------思维(0/1分数规划+二分)

解析:0/1分数规划模板题二分最大值midai-bimid>=0。通过上面公式算出t[i]=ai-bimid,然后排序t数组 删除前k个值,算出总和如果总和<0 说明mid 大了,这时候R=mid否则 说明mid小了,这时候L=mid#include <iostream>#include<algorithm>using namespace std;int n,k;int a[10005],b[10005];double res[10005]...

2020-08-24 17:58:17

J - YJJ‘s Salesman-----------------------思维(树状数组+dp)

题意:给定n个坐标,每个坐标都有一个属性值。问你从(0,0)走到(1e9,1e9)属性之和的最大值你可以向右,向下,向右下走。只有向右下走才能获得属性值?问最大是多少?解析:这道题以看就是个dp。如果是个二维dp 那么状态方程f[i][j]=max(f[i-1][j],f[i][j-1],f[i-1][j-1]+v[i][j])但是这样是不可取的。所以我们就不枚举行了。我们按照x轴排序,y列从大到小遍历然后用树状数组维护[y-1,0]的最大值即可 然后dp下去#include<..

2020-08-21 17:47:11

查看更多

勋章 我的勋章
  • 签到新秀
    签到新秀
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 技术圈认证
    技术圈认证
    用户完成年度认证,即可获得
  • 阅读者勋章Lv2
    阅读者勋章Lv2
    授予在CSDN APP累计阅读博文达到7天的你,是你的坚持与努力,使你超越了昨天的自己。
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 1024勋章
    1024勋章
    #1024程序员节#活动勋章,当日发布原创博客即可获得
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。