CodeForces-1324D-Pair-of-Topics】的更多相关文章

D - Pair of Topics 思路: 这个题需要一点思路,ai+aj>bi+bj可以转换成ai-bi+aj-bj>0,也就是c[i]=a[i]-b[i],只需要找c[i]+c[j]大于0 一开始的想法是枚举i和j,但是很显然会超时 a和b数组内部的顺序不会影响正确答案个数,所以可以排序 从两头缩进,如果a[r]加上比较小的a[l]大于0,那么就有l-r种方法,因为比a[l]大的数加上a[r]也会大于0,这样就能保证方法没有遗漏 当a[l]+a[r]不大于0的时候,说明a[l]太小了,l…
题意: 有长为n的a,b两序列,问满足ai+aj>bi+bj(i<j)的i,j对数. 思路: 移项得:(ai-bi)+(aj-bj)>0,i<j即i!=j,用c序列保存所有ai-bi的值,排序,若左右数之和大于0,则右数与二数间的数之和都大于0,计入结果后移动右指针,否则移动左指针. Tips: c[i]+c[j]和ans可能会超范围 #include <bits/stdc++.h> using namespace std; typedef long long ll;…
http://codeforces.com/problemset/problem/317/A 题意:给两个数字,可以两数相加去替换其中一个数字.问要做多少次,可以让两个数字钟至少一个 >= 目标数字m,输出次数,不可能的话输出-1 比较简单的题目,用来练习JAVA,代码写得有点,呵呵................ import java.util.*; public class Main{ static long max(long x , long y){ return x > y ? x…
题意:给定一个正整数数组,求最长的区间,使得该区间内存在一个元素,它能整除该区间的每个元素. 析:暴力每一个可能的区间,从数组的第一个元素开始考虑,向两边延伸,设延伸到的最左边的点为l, 最右边的点为r.那么我们下一点考虑r+1即可, 因为[l, r]之间不会有更优解. 代码如下: #pragma comment(linker, "/STACK:1024000000,1024000000") #include <cstdio> #include <string>…
原题 RMQ st表棵题 要想让一个区间里的所有数都可以整除其中一个数,那么他一定是这个区间内的最小值,并且同时是这个区间的gcd.然后这个问题就转化成了RMQ问题. 维护两个st表,分别是最小值和gcd,然后二分最长区间长度,用st表check即可. #include<cstdio> #include<algorithm> #include<cmath> #define N 300010 using namespace std; int n,a[N],mn[N][20…
题面: 给一个序列,求最长的合法区间,合法被定义为这个序列的gcd=区间最小值 输出最长合法区间个数,r-l长度 接下来输出每个合法区间的左端点 题解: 由于区间gcd满足单调性,所以我们可以二分区间长度,用st表维护区间最小值和gcd即可 #include<cstdio> #include<algorithm> #include<cstring> #include<cmath> #define N 300100 using namespace std; i…
这个题花费了我两天的时间来解决,最终找到了两个比较简单的方法 首先这个题不难看出是寻找a[i]+a[j]<0的情况,我第一开始直接用两个for循环遍历通过不了,应该是复杂度太大了 第一个方法 #include<algorithm> #include<iostream> #include<functional> typedef long long ll; using namespace std; ;//记住这里的定义前面一定要加const,不然maxn是变量,定义数…
原题链接 简要题意: 有两个数组 \(a_i\),\(b_i\),求有多少组 \(a_i + a_j > b_i + b_j (i \not = j)\). 显然,纯暴力过不了这道题目. 首先,我们显然的作差,让 \(c_i = a_i - b_i\). 那么,此时我们就需要找到 \(c_i + c_j > 0 (i \not = j)\) 的个数. 由于我们有 \(\texttt{upper_bound}\) 这样的好东西. \(\texttt{upper_bound}\) 返回从 \(\t…
好像题解里都是树状数组(起码我翻到的是 说一种cdq分治的(这应该算是cdq分治了 用cdq比较简单,所以可以作为一个练手题 cdq分治其实是一种模糊的思想,处理\([l,r]\)区间内,有多少\((i,j)\)满足某种条件 这里假设\(i<j\),我们取一个\(mid=\frac{i+j}{2}\) \(i<j\leq mid\),问题转换到区间\([l,mid]\)上解决 \(mid<i<j\), 问题转换到区间\([mid+1,r]\)上解决 \(i\leq mid <…
说明:本文在个人博客地址为edwardesire.com,欢迎前来品尝. 今天来学习alsotang的爬虫教程,跟着把CNode简单地爬一遍. 建立项目craelr-demo 我们首先建立一个Express项目,然后将app.js的文件内容全部删除,因为我们暂时不需要在Web端展示内容.当然我们也可以在空文件夹下直接 npm install express来使用我们需要的Express功能. 目标网站分析 如图,这是CNode首页一部分div标签,我们就是通过这一系列的id.class来定位我们…