技巧题
Are_you_ready
这个作者很懒,什么都没留下…
展开
-
G - Gotta Catch Em All!(三元环)
题目:https://vjudge.z180.cn/contest/441265#problem/G题意:题目给n个点,n-1条无向边,是个图,不一定是树,可能有环和孤立点,,,,求从i点到j点的最短步数是2的所有路径。题解:找到每个点的度数du,即它连边的数量,然后C(du,2)就是以这个点为中间点的所有情况,,,但如果存在三元环,i到j的最短路径就是1而不是2,所以要把三元环的情况减掉,题目就变成了找三元环的个数,,这里把无向边直接转为有向边就行,最后答案乘以2,,这里必须要有的一个优化就是,存图的原创 2021-05-31 17:54:56 · 196 阅读 · 0 评论 -
求1-n因数和||n-m因数和
求1-n因数和:ll solve(ll n){ ll x=sqrt(n); ll ans=0; for(int i=1;i<=x;i++){ ans+=n/i; } return ans*2-x*x;}求n-m因数和ll solve(ll n){ ll x=sqrt(n); ll ans=0; for(int i=1;i<=x;i++){ ans+=n/i; } retu原创 2021-05-24 18:27:20 · 202 阅读 · 0 评论 -
D. Max Median(二分+前缀和(减掉前面最小的前缀))
题目:http://codeforces.com/contest/1486/problem/D题意:在长度为n的序列中,去不小于k的长度,然后排序,取它的中位数。题解:二分枚举长度为中位数大小,然后check判断,check中大于等于这个中位数的置为1,小于这个中位数的置为-1,然后取前缀和,每一次减掉一个前面最小的前缀和,看看是否有某段大于这个中位数,有的话就返回1.#include <iostream>#include<bits/stdc++.h>using names原创 2021-02-21 15:19:48 · 228 阅读 · 0 评论 -
D - Jumps Gym - 101341D(任选a[i]跳&从0跳到x点----裴蜀定理)
题目:https://vjudge.z180.cn/problem/Gym-101341D题意:初始在0位置,每次从n个a[i]中选择一个进行跳跃,问能否跳到x点题解:裴蜀定理#include<bits/stdc++.h>using namespace std;typedef long long ll;const ll inf=0x3f3f3f3f3f3f3f3f;const int N=1e6+7;int main(){ ll x; ll n; cin原创 2021-01-20 08:35:57 · 129 阅读 · 0 评论 -
E - Rounding Gym - 102465E(思维)
题目题意:一个10000个人投票,然后根据投票比例四舍五入成现在的整数,问原来每个地方的最大比例和最小比例分别是多少#include <iostream>#include <string>#include<bits/stdc++.h>using namespace std;char str[50001];string names[50001];int d[50001];int main(){ int n; int sum = 0;原创 2021-01-18 14:30:27 · 199 阅读 · 1 评论 -
Hankson的趣味题--acwing(快速求一个数的所有约数)
题目:https://www.acwing.com/problem/content/202/可能需要报名课程才能做。题意:给a,b,c,d四个数,范围是1–2e9,求x和a的最大公约数是b,x和c的最小公倍数是d,满足条件的x有多少个。首先输入一个n,代表n组数据,n的范围是1-2000题解:这个题其实就找d的所有约数,然后枚举每一个约数就行,int范围内数量最大的约数是1600,所以枚举不多,难的是求d的所有约数,因为有2000的输入,如果直接暴力求根下n的复杂度,如果给1s时间复杂度是可以过的,但题原创 2020-12-30 18:49:46 · 252 阅读 · 0 评论 -
越狱(俩个快速幂相减如果为负数就加上mod)
题目:https://www.acwing.com/problem/content/1292/监狱有连续编号为 11 到 nn 的 nn 个房间,每个房间关押一个犯人。有 mm 种宗教,每个犯人可能信仰其中一种。如果相邻房间的犯人信仰的宗教相同,就可能发生越狱。求有多少种状态可能发生越狱。输入格式:共一行,包含两个整数 mm 和 nn。输出格式:可能越狱的状态数,对 100003100003 取余。数据范围1≤m≤108 //10的8次方1≤n≤1012//10的12次方输入样例:原创 2020-12-28 21:45:11 · 187 阅读 · 0 评论 -
D - Walker Gym - 102900D(二分(枚举 “相遇点”))
题目:https://vjudge.z180.cn/contest/413427#problem/D在一个长为n的线段,左端点为0,右端点为n有两个端点分别位于p1,p2,它们的速度分别为v1,v2问最少需要多少时间,可以使得p1,p2的路程覆盖整条线段思路:分类讨论:先令p1<p2①p1走完全程②p2走完全程③p1向右走完全部,p2向左走完全部④p1走完左边的全部,p2走完右边的全部,剩余中间的部分p1与p2共同走完,二分路程或时间即可#include<bits/stdc翻译 2020-12-19 21:22:41 · 237 阅读 · 1 评论 -
B. Find the Spruce(dfs+记忆化)
题目题意:*是一棵树以及类似图片那里的树有多少个从上往下搜索每一个点,看从这个点往下能够构成树的深度,加起来就是答案#include<bits/stdc++.h>using namespace std;const int maxn = 1e5+5;string s[600];int dp[600][600];//储存dfs的值int sum=0,n,m;int dfs(int x,int y){//dfs求树的深度 if(dp[x][y]) return dp[x][转载 2020-12-18 21:32:04 · 203 阅读 · 1 评论 -
Gym-102888C 数码管(快速幂( 次方很大是个字符串级别,要对次方分割 ))
题意:本题其实就是要求6的n/2次方,n如果是个奇数再乘以4,仔细分析分析就可以得出。题目#include <iostream>#include<bits/stdc++.h>using namespace std;typedef long long ll;const ll mod=998244353;char ch[1000000];ll flag;void chu() //模拟大数除法{ char c=ch[strlen(ch)原创 2020-12-18 20:15:19 · 103 阅读 · 1 评论 -
Problem J. 屠龙勇者 ErvinXie(队列移动----在某个数组上走最小步数拿到满足要求的东西)
题意:有k种金属,需要用s个金属构造一个阵法(金属可能重复),然后一条河,每一米都有一种且一个金属,问从任意一个点开始能否找到满足阵法要求的金属,如果能够满足,输出走的最少步数,否则输出DragonXie题目解决:其实就是从某个点出发,往后走,走最短步数,拿到满足题目要求的金属数量和种类(可能拿的多,如你需要1,2,3金属,河上面是1,2,4,3,你就需要走4步,因为从1开始走,想拿3必须走4;如果你需要1,2,3金属,河上是1,1,2,4,3那么你是从第二个1开始走。)拿一个队列放在这条河上移动原创 2020-12-14 21:41:09 · 90 阅读 · 0 评论 -
F - GlitchBot Kattis - glitchbot(遍历)
F - GlitchBot Kattis - glitchbotOne of our delivery robots is malfunctioning! The job of the robot is simple; it should follow a list of instructions in order to reach a target destination. The list of instructions is originally correct to get the robot t原创 2020-08-11 10:04:57 · 205 阅读 · 0 评论 -
C - Line-line Intersection Gym - 102220C(求线的交点)
C - Line-line Intersection Gym - 102220CThere are n lines l1,l2,…,ln on the 2D-plane.Staring at these lines, Calabash is wondering how many pairs of (i,j) that 1≤i<j≤n and li,lj share at least one common point. Note that two overlapping lines also sha转载 2020-08-08 17:22:10 · 477 阅读 · 0 评论 -
G - Radar Scanner Gym - 102220G(一对矩形移动全部包涵一个点,最少的步数)
G - Radar Scanner Gym - 102220GThere are n rectangle radar scanners on the ground. The sides of them are all paralleled to the axes. The i-th scanner’s bottom left corner is square (ai,bi) and its top right corner is square (ci,di). Each scanner covers so原创 2020-08-08 17:16:02 · 463 阅读 · 2 评论 -
B - Ugly Number Gym - 101875B(最小表示法/最大表示法)
B - Ugly Number Gym - 101875BA k-cyclic shift of an integer x is a function that removes the last k digits of x and inserts them in its beginning. For example, the k-cyclic shifts of 123 are 312 for k = 1 and 231 for k = 2.Teo, a kid from Canada, learned原创 2020-08-06 21:05:16 · 193 阅读 · 0 评论 -
给一个n和k,将n分为三个互不相等的数,任何俩个的最大公约数为k
链接:https://ac.nowcoder.com/acm/contest/6871/A来源:牛客网例如,有三个正整数 a, b, c 和某一个目标值 k,如果 \gcd(a,b)=\gcd(b,c)=\gcd(a,c)=kgcd(a,b)=gcd(b,c)=gcd(a,c)=k,并且 a,b,c \neq ka,b,c =k ,那么他认为这三个数是一组好数。 其中\gcd(x,y)gcd(x,y)表示整数 x 和 y 的最大公约数。当然这不够刺激。现在 Compute 想要知道,如果已知原创 2020-08-05 21:31:31 · 331 阅读 · 0 评论 -
A - Air Conditioned Minions Kattis - airconditioned
A - Air Conditioned Minions Kattis - airconditionedYou are the boss of ACM (Air Conditioned Minions), an upstanding company with a single goal of world domination.The company has N minions. Each minion works evilly from early morning until evening inside原创 2020-08-04 11:29:32 · 353 阅读 · 0 评论 -
Problem D. Distribution in Metagonia(递归把n拆成多个2^x*3^y)
Problem D. Distribution in MetagoniaInput file: distribution.inOutput file: distribution.outTime limit: 2 secondsMemory limit: 256 megabytesThere are one hundred noble families in the country of Metagonia, and each year some of these familiesreceive原创 2020-07-31 15:09:46 · 223 阅读 · 0 评论 -
一矩形,在这个矩形里面求出最大的三个相等的正方形的边长
一矩形,在这个矩形里面求出最大的三个相等的正方形的边长int h,w; while(cin>>h>>w) { if(h<w) swap(h,w); double s; if(w>=h*2.0/3.0) //w/2.0>=h/3.0 s=w/2.0; else if(w>=h/3.0) s=h/3.0原创 2020-07-30 21:15:36 · 181 阅读 · 0 评论 -
东华大学2020年程序设计竞赛(同步赛)B
东华大学2020年程序设计竞赛(同步赛)BGiven a positive integer y and a prime p, you are asked to find an integer x such that (x \times y)\ mod\ p= 1(x×y) mod p=1. If such x exists, output any x mod p. Otherwise, output -1.Hint: For any integer a and positive integer b, a原创 2020-06-12 17:43:57 · 248 阅读 · 0 评论 -
第十七届浙大城市学院程序设计竞赛(同步赛)C
第十七届浙大城市学院程序设计竞赛(同步赛)C链接:https://ac.nowcoder.com/acm/contest/5954/CSumo生活的小镇有m个居民,小镇的生活和谐而美好。但是,有一天,可怕的事情发生了…这个故事要从一只蝙蝠讲起。一个月黑风高的夜晚,Sumo家中闯入了一只迷路的蝙蝠,Sumo在驱赶蝙蝠的过程中一不小心被蝙蝠咬伤了。结果就悲剧了,他感染了一种传染性很强的病毒。现在发现这种病毒的传染情况如下:一个病患每天可以传染x个未被感染的人;潜伏期为7天,期间不发病也不传染别人;原创 2020-06-12 13:08:01 · 252 阅读 · 0 评论 -
“科林明伦杯”哈尔滨理工大学第十届程序设计竞赛(同步赛)(j题ac串)
题目描述有一个字符串s,对于字符串中一个非前缀子串恰好为字符串的前缀我们称之为ac串。请问给出一个字符串他的ac串最大长度为多少输入描述:输入数据第一行是t,表示数据的组数,接下来每组数据输入一个字符串s(t<=10,s<=1e5)输出描述:输出最大长度示例1输入复制2aaaaaabacc输出复制41说明aaaab的ac串是aaa(2:4)acac的ac串是ac(3:4)链接:https://ac.nowcoder.com/acm/contest/575原创 2020-06-03 19:33:25 · 212 阅读 · 0 评论 -
科林明伦杯”哈尔滨理工大学第十届程序设计竞赛B(减成1)
科林明伦杯”哈尔滨理工大学第十届程序设计竞赛存在n个数,每次操作可以任选一个区间使得区间内的所有数字减一。问最少多少次操作,可以让所有数都变成1。数据保证一定有解。输入描述:输入t,代表有t组数据。每组数据输入n,代表有n个数。接下来一行输入n个数,数字大小小于1e6。(t<=1000,n<1e5,∑n < 1e6)输出描述:每组数据输出一个整数代表最少需要操作的次数。链接:https://ac.nowcoder.com/acm/contest/5758/B#include原创 2020-06-02 13:19:43 · 492 阅读 · 0 评论