
codeforces
Benzema67
北京邮电大学学生
展开
-
Codeforces Problem 51D - Geometrical problem
从前三个数中找到公比(最多去掉一个数),检查后面数是否满足等比#include #include #include int in[100010];int min(int a,int b){ return a>b?b:a;}int main(){ int i,j,k,n,p,ans; double d; scanf("%d",&n); for(i=1;i<=n;i++){原创 2012-01-27 14:01:42 · 847 阅读 · 0 评论 -
Codeforces 164B || Codeforces 163A
Codeforces 164B是个字符串问题(codeforces把这类问题归为two pointers),给了2个字符串a,b都可以任意移位,且b中无相等元素,满足条件“是a的子串==是b的子序列”的最大的串#include#include#include#includeusing namespace std;int p[1000010],a[1000010],n,m,ans;原创 2012-04-23 21:05:40 · 2040 阅读 · 0 评论 -
Codeforces Croc Champ 2012 - Round 2 (Unofficial Div. 2 Edition)
Problem C一个字符串A循环移位n种可能性有cnt种和字符串B相等,那么如果当一个串处于B状态时循环移位n-1种里面有cnt-1种可能到达B,n-cnt种可能到达非B那么如果当一个串处于非B状态时循环移位n-1种里面有cnt种可能到达B,n-cnt-1种可能到达非B然后DP就行#include#includetypedef __int64 lld;const lld原创 2012-04-21 14:03:37 · 955 阅读 · 0 评论 -
Codeforces Round #104 (Div. 2) E - Lucky Subsequence
这个题其实就是个dp(类似背包),但是一些细节还是让我做了一晚上。这个题学习了组合数取模(逆元法) 补充知识:逆元的求法(a/b) mod p=a*(b逆) mod pb*x=1(mod p) x就是b的逆元而b逆可以利用扩展欧几里德或欧拉函数求得:1).扩展欧几里德:b*x+p*y=1 有解,x就是所求2).欧拉函数:b^(p-1)=1(mod p),故b*b^(原创 2012-01-25 00:37:13 · 1241 阅读 · 0 评论 -
Codeforces Round #112 (Div. 2) C Another Problem on Strings
codeforces上的很多题都需要好的想法才能做。#include#define maxn 10000005using namespace std;int n,i,k,s[maxn],sum[maxn],a[maxn]; // a[i]记录第i个是0或1,s[i]记录第前i个有几个1,sum[i]表示从头开始产生i个1的方法数char st[maxn];long long an原创 2012-03-17 13:17:30 · 1418 阅读 · 0 评论 -
Codeforces Problem 161E - Polycarpus the Safecracker
先暴力打素数表,然后枚举5位数里(从高位到低位)有i位确定且为x的数有多少个。 具体解某个数时暴力即可#include#include#include#includeusing namespace std;bool vis[100010];vectordp[5][100010];int k,l;int a[6][6];int dfs(int now){ int i,j,原创 2012-03-23 23:23:53 · 1044 阅读 · 0 评论 -
Codeforces Problem 37B - Computer Game
按题目要求写就可以 #include #include #include struct point{ int pow; int dmg; int num; }str[1010]; int visit[1010]; int ans1[1010],ans2[1010]; int cmp(con原创 2012-01-27 14:04:47 · 872 阅读 · 0 评论 -
Codeforces Round #104 (Div. 2) D. Lucky Number 2 模拟策略
给出我自己的证明:不可能出现fabs(a47-a74)>1。首先把所有的4排成一排,如果在队首前插入7,则无论插几个只多一个a74;如果在队尾后插入7,则无论插几个只多一个a47,;而在两个4中间插7,不管插几个,a47与a74都同等的只增加一个。故得证。#include#include#includeint max(int a,int b){ return a>b?a:b;原创 2012-01-24 14:32:12 · 906 阅读 · 0 评论 -
Codeforces Round #100 (Div. 2) A - New Year Table
昨天本来想做做codeforce呢,结果第一题就被卡了,看来自己想问题还是不全啊!学习了声明pi的方法#define pi 2*acos(0)还有在取整时一定记着加1e-8。其他的就是把所以情况考虑全。原创 2012-01-05 11:58:33 · 883 阅读 · 0 评论 -
Codeforces Round #166 (Div. 2) D - Good Substrings
题意说的很清楚了,就是要寻找满足某一条件的不同字串个数。方法一:寻找不同字串个数体型很直接的一种方法就是把字符串hash值保存在set或者数组中,统计其中不同的个数。//一个长为n的字符串的字串个数为n*(n+1)/2#include#include#include#include#include#define multiple 1000000007 //这里mul原创 2013-02-13 00:18:01 · 1529 阅读 · 0 评论