ICode9

精准搜索请尝试: 精确搜索
  • [NOIp2011] 瑞士轮 题解2020-07-14 16:02:34

    阅读理解题,对于这种题建议在纸上模拟一下就很好读懂。 首先就是分析题意,发现快排不是稳定排序,所以每次都有排一遍。 考虑归并排序:直接运算符重载,双关键字排序,采用 STL 里面的 merge 函数,基本思想还是一致的,方便用于减少码量。 其余的归并时依靠 cmp 函数直接模拟一下就可以了。

  • CF1324A Yet Another Tetris Problem 题解2020-06-16 15:41:13

    博客园同步 原题链接 简要题意: 再简要一波: 每次可以把一个数增加 222,问最后能不能让所有数相等。(也就是抵消掉) 什么?题意变成这样子还做个啥? 你会发现,必须所有数的奇偶性都相同,才可以;反之就不可以。 这结论不用证明了,因为每次增加不会改变奇偶性的。 #pragma GCC optimize(

  • loj60442020-06-15 15:04:37

    题意 \(n\)个点的完全图,\(1\)为根,深度为\(1\),求深度为奇数的点恰好\(m\)个的生成树个数 做法 比较巧妙的一点是把树看成二分图,然后就是\(K_{m,n-m}\)的生成树个数了

  • 2020.06.09——习题训练五2020-06-14 16:56:59

    A - Sum of Odd Integers 题意:给你一个n和k,让你判断这个n能否由k个奇数构成 思路:第一眼感觉不会,然后有个同学说,先看看k个最小能组的数是多少,于是一算是k^2,也就是说当n<k^2时,是不能成功的,但问题是当n>=k^2时,却不一定能成功,那么怎么能成功,k个奇数, 变化是k^2加上一个偶数,也就是说,k^2

  • Codeforces Round #649 (Div. 2)2020-06-14 16:06:40

    https://codeforces.com/contest/1364 A - XXXXX 题意:给一个 \(n\leq 10^5\) 的数组,求一段最长的区间,这段区间的和不被 \(x\) 整除。 题解:先考虑所有以第一个元素为左端点的区间,这时候往右扫描,得到的前缀和 \(prefix[i]\) 假如不被 \(x\) 整除,则更新答案。 然后这样做漏掉了一部分

  • lexin_ic2020-06-14 14:02:25

       首先解读题意:A中从高位往低位看,第一个出现一的位置等于B的数值。  

  • 2020.06.09-习题训练五2020-06-13 19:57:56

    A - Sum of Odd Integers 题意:k个不同奇数的和是否可以等于n, 思路:由题目知道必须 n,k奇偶相同,然后就是 k 个奇数相加最小值大于 n肯定不能组成 代码: 1 #include<iostream> 2 #include<cstdio> 3 #include<cmath> 4 #include<algorithm> 5 using namespace std; 6 int mai

  • AGC/ARC2020-06-13 11:52:06

    AGC043 A 范围很小, 直接$O(n^4)dp$ B 题意 给定长$n$的序列$a$, 只含$1,2,3$. 有$f_{k,x}=|f_{k-1,x}-f_{k-1,x+1}|,f_{1,x}=a_x$. 求$f_{n,1}$ 先特判掉$n=1$的情况, 那么答案只能为$0,1,2$ 答案的奇偶性与$\sum a_i \binom{n-1}{i-1}$相同 $\binom{n}{m}$为奇就等价于$n|m=n

  • 最长公共子序列(LCS)tzoj:57522020-06-08 16:56:59

    http://www.tzcoder.cn/acmhome/problemdetail.do?method=showdetail&id=5752 题意:求两个串的最长公共子序列(顺序相同即为子序列) dp[i+1][j+1]:表示0-i前i+1个为止的最长公共子序列 当a[i]==b[j]时,直接就是dp[i][j]+1; 其他:max(dp[i][j+1],dp[i+1][j])  

  • test06062020-06-07 14:55:08

    test 0606 目录test 0606T1 背包问题得分情况题意犯傻原因正解T2序列问题得分情况题意犯傻原因正解T3路径问题得分情况题意正解T4 矩阵问题得分情况题意犯傻原因正解考试总结 T1 背包问题 得分情况 期望:50 实际:0 改后:50 题意 爱德华有 \(k\) 个背包,大小为 \(1,2,3 - k\),并且想知

  • loj32912020-06-06 21:56:34

    题意 loj 做法 \(F_{n+m}=F_{n}*F_{m}+F_{n-1}*F_{m-1}\) \(F_{n}*F_{m}=F_{n+m}-(F_{n-1}*F_{m-1})\) \(F_n*_m=F_{n+m}-F_{n+m-2}+F_{n+m-4}…+(-1)^{min(n,m)}*F_{|n-m|}\) 分别算出\(F_{n+m}\)与\((-1)^{min(n,m)-2}*F_{|n-m|-2}\),可以差分算出中间的 \(A,B\)分别用多项式\(A(

  • PE 482020-05-28 16:52:07

    题意:求出11+22+33+...+10001000的后10位。 思路:对1010取模就可以了,注意用快速幂可能会越界。   #include <bits/stdc++.h> using namespace std; typedef long long ll; const ll maxn=1e7; int v[maxn]; struct Prime { int prime[maxn]; int s; Prime() {

  • jzoj61522020-05-28 16:02:32

    题意 给定\(n\)长度序列\(a_i\),对于一个平方串\([i,i+len-1][i+len,i+2len-1]\),\(\forall x\in[i,i+len-1]\),存在边\((i,i+len,w_{len})\) 求最小生成森林 做法 插点求出平方串,相当于\([l,r]\)向\([l+len,r+len]\)连\(w_{len}\) 这个可以转化成\([l,l+2^i-1]\)向\([l+len,l+len+

  • 杂题2020-05-27 20:05:38

    题意 给定\(n\),求\(\sum\limits_{i=1}^n \sum\limits_{j=1}^n \sum\limits_{k=1}^n [(i,j),(i,k)]\) 做法 令\(f[n]=\sum\limits_{i=1}^n \sum\limits_{j=1}^n [(n,i),(n,j)]\) 将其展开一下,是这样的 \[\sum\limits_{d_1|n}\sum\limits_{d_2|n}[d_1,d_2](\sum\limits

  • bzoj54122020-05-26 12:56:52

    题意 \(n\)个点的竞赛图,给定\(k\)个点,满足去掉k个点后图中不存在环,选择另外最小的点数,使得仅去除那些点,使得图内无环。 做法 若\(k\)个点内部有环则无解,题目保证\(S\backslash k\)内无环 由于是个竞赛图,若我们将其定义为\(A,B\)两部分,内部的拓扑排序是唯一的 重标号一下,令\(l_i=

  • CF1149E2020-05-23 16:02:58

    题意 给定一个DAG,每个点初始有点权\(a_i(a_i\in [0,10^9])\),两个人进行博弈,每次选择一个点\((a_i>0)\),将其\(a_i\)严格减少,将其后继节点更改为任意点权,不能操作的人失败。 做法 出度为\(0\)的点分到第\(0\)组 其余点分到第\(mex\{v|(u,v)\in E\}\) 胜利的条件为至少存在一组异或

  • 5.23 Vj B - Balanced Array2020-05-23 11:01:37

    #include<bits/stdc++.h>#define ll long longusing namespace std;//按照题意可知二分之n为偶数的时候存在这样的数组,按照题意分两部分存入数组即可int main(){    ll t,n;    cin>>t;    for(int i=0; i<t; i++)    {        cin>>n;        if(n/2%2

  • 2020-05-22 — 习题训练二-A2020-05-23 10:04:20

    A - Candies 题意:给定n,输出满足x+2x+4x+⋯+2^k−1x=n的x的值 (k>1) 解题思路:2^k-1累加,判断其值是否被n整除即可 ac代码: #include<iostream>using namespace std;int main(){   int t,n,i,s,sum;   cin>>t;   while(t--){     cin>>n;     s=1;     sum=1;

  • CF1136E2020-05-19 23:57:51

    题意 洛谷 做法一 \(a_i\ge a_{i-1}+k_{i-1}\) 考虑修改\(l\),\(a_i\ge a_l+\sum\limits_{j=l}^{i-1}k_i\),若\(a_l+=x\),则\(a_i=max(a_i,a_l+\sum\limits_{j=l}^{i-1}k_i)\),max取第二项的区间是连续的,可以二分出来 做法二 按照\(a_{i}=a_{i-1}+k_{i-1}\)的性质分块,维护块内用线段树

  • CF1354C Simple Polygon Embedding(计算几何)2020-05-19 16:55:20

    题意: 给出一个正偶数边的多边形,计算它最小的外接正方形的边长。 题解: 草稿纸算一下就行,不会派的定义和调用C++内置的三角函数方法,花了不少时间。。。 #include<bits/stdc++.h> using namespace std; #define PI acos(-1) int main() { int t; cin>>t; while (t--

  • 后缀数组题目总结2020-05-19 09:02:38

    后缀数组题目 入门博客 模板题 输出sa[i] P3809 【模板】后缀排序 字符串的最小表示 P4051 [JSOI2007]字符加密 将字符串s复制为ss,做后缀数组。 取首尾字符求字典序最小 P2870 [USACO07DEC]Best Cow Line G 题意 给出一个字符串,每次可以从字符串的首位取出一个字符,放到队列的尾部,

  • C. Count Triangles(前缀和)2020-05-18 20:07:29

    题目传送门 题意: 给你a,b,c,d,保证a<=b<=c<=d,问你有多少个x,y,z符合a<=x<=b<=y<=c<=z<=d,并且x,y,z能组成三角形。 思路: 我们考虑到,x+y的最小值为a+b,最大值是b+c,我们可以差分计算出,这个区间内每个数有多少种可能的情况,再对数组计算前缀和,最后枚举z,看对于当前的z,有多少x+y>z

  • AtCoder Beginner Contest 1682020-05-17 22:05:00

    比赛链接:https://atcoder.jp/contests/abc168/tasks A - ∴ (Therefore) 题意 给出一个由数字组成的字符串 $s$,要求如下: 如果 $s$ 以 2,4,5,7,9 结尾,输出 "hon" 如果 $s$ 以 0,1,6,8 结尾,输出 "pon" 如果 $s$ 以 3 结尾,输出 "bon" 代码 #include <bits/stdc++.h> using namespa

  • CF1101F2020-05-17 17:08:17

    题意 洛谷 做法 对于一辆车,最优为,将\([s,t]\)划分为\(k+1\)个区间,使得最大长度最小 \(f_{l,r,k}=min_{i=l}^r\{max(f_{l,i,k-1},a_r-a_i)\}\) 固定\(l,k-1\),\(f_{l,i,k-1}\)单调不降;固定\(r\),\(a_r-a_i\)单调降

  • CF1097E2020-05-16 11:08:09

    题意 洛谷 做法 结论1:\(f(n)=min\{k|\frac{k(k+1)}{2}>n\}-1\) 证明: 不会...就背着吧 好像上界的排列形如:\(1|3,2|10,9,8,7|15,14,13,12,11|\) 然后考虑替换求LIS那种方法 求出的LIS若大于\(f(n)\),则将LIS找出来删掉 若小于\(f(n)\),考虑替换的过程,则可得出LIS长度个下降序列

专注分享技术,共同学习,共同进步。侵权联系[admin#icode9.com]

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

ICode9版权所有