codeforces 竞赛题目讲解
codeforces 上的一些题目讲解
代码随想录
代码随想录网站:https://programmercarl.com
展开
-
codeforces D. Common Divisors kmp基础
D. Common Divisorstime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputVasya has recently learned at school what a number原创 2012-05-01 15:28:37 · 1371 阅读 · 0 评论 -
codeforces 460C - Present 二分加模拟
代码有详细解释,二分模拟寻找结果,贪心选择从哪开始浇花,原则就是遇到需要浇花的就浇,至于w可以用线段树来维护线段,但也可以用一个数组标记一下,二分总是有很多问题啊,所以写很多输出用来调试,jiong/************************************************************************* > File Name: 460c.cpp原创 2014-08-23 00:36:31 · 1569 阅读 · 0 评论 -
codeforce 460B Little Dima and Equation
这道题给出了一个犀利的公式x=b·s(x)a+c, s(x)为求x的各个位数之和,求在0-1000000000之间找到满足这个公式值,明显暴力枚举绝对超时,遍历一边都得一分钟的时间,所以就要分析公式可以看出s(x)^a=(x-c)/b,也就是说(x-c)/b一定是一个整数,所以循环可以写成for(int i=c;i的以上思路都是遍历x的值,仔细看公式,里面有一个s(x)^a,说明一个问原创 2014-08-21 10:45:58 · 1070 阅读 · 0 评论 -
452A - Eevee 模拟字符串,挺简单的一道题
注意考虑长度,挺简单的yi原创 2014-07-29 23:35:25 · 680 阅读 · 0 评论 -
B - Sort the Array
找出一个递减序列,如果有两个或两个以上递减序列直接no了,然后对递减序列两端数start,end,然后比较a[start]和a[end+1] , a[end] 和a[start-1]#include#includeusing namespace std;int a[100005];int main(){ // freopen("in.txt","r",stdin);原创 2014-07-25 10:56:53 · 1027 阅读 · 0 评论 -
A. Game With Sticks
其实就会找出xy最小的一个,再判断奇偶就OK#include#includeusing namespace std;int main(){ int x,y; while(cin>>x>>y){ int t=x>y?y:x; if(t%2==0) printf("Malvika\n");原创 2014-07-25 10:58:25 · 938 阅读 · 0 评论 -
B. Suffix Structures 模拟吧,情况比较多要想周全
这道题需要考虑的情况比较多,flag1表示情况是:b数组里有的字母而a里没有和b里面的同一个字母个数比a里面的多flag2表示情况:b里面的左右字母能不能在a中同等顺序的存在flag3表示情况:a里面同一个字母的个数与b里面是否相同#include#include#includeusing namespace std;int main(){ // freopen("in.原创 2014-07-22 16:37:06 · 937 阅读 · 0 评论 -
D. Multiplication Table 二分查找
刚做这道题根本没想到二分,最关键是没想出来如何统计在这个矩阵中比一个数小的有几个怎么算,造成自己想了好久最后看了别人的提示才做出来。哎!好久不做题太弱了#include#includeusing namespace std;int main(){// freopen("in.txt","r",stdin); long long n,m,k; while(cin>>原创 2014-07-22 14:41:12 · 968 阅读 · 0 评论 -
449A - Jzzhu and Chocolate 贪心
一道贪心题,尽量横着切或竖着切,实在不行在交叉切#include#includeusing namespace std;int main(){ // freopen("in.txt","r",stdin); long long n,m,k; while(cin>>n>>m>>k){ if((n+m-2)<k){ printf原创 2014-07-22 09:40:18 · 1121 阅读 · 0 评论 -
450A - Jzzhu and Children 找规律也可以模拟
挺水的一道题,规律性很强,在数组中找出最大的数max,用max/m计算出倍数t,然后再把数组中的书都减去t*m,之后就把数组从后遍历找出第一个大于零的就行了#include#includeusing namespace std;int main(){ // freopen("in.txt","r",stdin); int a[105],n,m; while(~sca原创 2014-07-21 19:41:06 · 989 阅读 · 0 评论 -
450B Jzzhu and Sequences 我考研之后做的第一道题
#include#includeusing namespace std;#define mod 1000000007int abs(int i){ if(i<0) return i*(-1); return i;}int a[100];int main(){// cout<<-200%107<<endl;// freopen("in.tx原创 2014-07-21 16:46:53 · 754 阅读 · 0 评论 -
459B Pashmak and Flowers
这道题给我wa惨了,数组元素范围分明是10^9,int完全够啊,今天改成long long 过了,求解释啊 #include#include#include#define N 200005using namespace std;int main(){ long long n,a[N]; while(cin>>n){ for(long long i=0;原创 2014-08-16 09:27:28 · 1629 阅读 · 2 评论