You've got array a[1], a[2], ..., a[n], consisting of n integers. Count the number of ways to split all the elements of the array into three contiguous parts so that the sum of elements in each part is the same. More formally, you need to find the nu…
http://codeforces.com/contest/466 噗,b没写出来啊.a写完后过了40分钟了啊,罚时4次啊!果然太弱 总结: a题看错题,没有考虑m>=n其实也是可行的,导致调了40min...b题不会......(暴力是硬伤..),c题一开始交了tle......然后改了下才过..rp好. 很多情况下2种决策取最优我们可以枚举其中一种决策的数目然后计算另一种决策的数目..简称打暴力打到家 a.Cheap Travel 题意:要过n个站,每次可以选择过1个站花费a卢布,也可以选择…
D. Increase Sequence time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output Peter has a sequence of integers a1, a2, ..., an. Peter wants all numbers in the sequence to equal h. He can perform the…
C - Number of Ways 直接暴力从前往后寻找.假设找到1/3sum的位置,那么标记++.找到2/3的位置,总数加上标记数. #include<stdio.h> #include<iostream> #include<stdlib.h> #include<string.h> #include<algorithm> #include<vector> #include<math.h> #include<que…
题目链接:https://codeforces.com/contest/1370/problem/C 题意 给出一个正整数 $n$,Ashishgup 和 FastestFinger 依次选择执行以下一个操作: 如果 $n > 1$,使 $n$ 除以一个奇因子 如果 $n > 1$,使 $n$ 减一 若一方不能操作,则另一方胜利. 题解 奇数根据 $n = 1$ 分为两种情况. 偶数根据是否含有奇因子分为两种情况,不含奇因子根据是否为 $2$ 分为两种情况,含有奇因子根据 $2$ 的个数和奇因…
题意:给出一个两边长为a,b的矩形,要求增加a和增加b使a*b>=6*n且a*b最小. 解法:设新的a,b为a1,b1,且设a<b,那么a<=a1<=ceil(sqrt(6*n)),那么我们可以枚举a1,然后算出b1,如果b1<b,那么b1 = b,然后算出面积,取所有面积的最小值不就可以了,然后再枚举一次b1,处理与之相同即可. 复杂度O(sqrt(n)) 代码: #include <iostream> #include <cstdio> #incl…
很简单的暴力枚举,却卡了我那么长时间,可见我的基本功不够扎实. 两个数相乘等于一个数6*n,那么我枚举其中一个乘数就行了,而且枚举到sqrt(6*n)就行了,这个是暴力法解题中很常用的性质. 这道题找出a和b中最小的那个,然后开始枚举,一直枚举到sqrt(6*n)的向上取整.这样所有可能是答案的情况都有啦.再干别的都是重复的或者肯定不是最小面积的. #include<iostream> #include<cstdio> #include<cstdlib> #includ…
题目链接 题目大意 给你一个长为d只包含字符'a','b','c','?' 的字符串,?可以变成a,b,c字符,假如有x个?字符,那么有\(3^x\)个字符串,求所有字符串种子序列包含多少个abc子序列 题目思路 假如没有问号,那么就是一个简单的dp \(dp[i][1]为前i个位置有多少个a\) \(dp[i][2]为前i个位置有多少个ab\) \(dp[i][3]为前i个位置有多少个abc\) 考虑 '?' 会对 dp 的转移产生什么影响,因为 '?' 可以将三种字母全部都表示一遍,所以到了…
题意:有一个\(n\)个点,\(n\)条边的图,问你长度至少为\(1\)的简单路径有多少条. 题解:根据树的性质,我们知道这颗树一定存在一个环,假如一棵树没有环,那么它的所有长度不小于\(1\)的简单路径数一定是\(\frac{n*(n-1)}{2}\),因为每个点都可以和其他任意一个点形成一条路径,除以\(2\)表示去除反向的边的个数,而环上的点到其他点的个数就不用除以\(2\),因为环上的点到其他的点都一定有两种不同的路径可以走,所以路径数为\(n*(n-1)\),我们可以记录不在环上的节点…
题意:对于正整数\(n\),每次可以选择使它变为\(n-1\)或者\(n/t\) (\(n\ mod\ t=0\)且\(t\)为奇数),当\(n=1\)时便不可以再取,问先手赢还是后手赢. 题解:首先特判\(1\)和\(2\)的情况,然后显然如果\(n\)是奇数,一定是先手赢. ​ 如果\(n\)是偶数,那么我们去找它的奇数因子. ​ 如果没有,那么先手只能减一,后手直接赢. ​ 如果有,那么我们直接将它的所有奇数因子拿走,剩下一个孤零零的偶数给后手,如果这个偶数不是\(2\)的话,先手赢,否则…