- 博客(11)
- 收藏
- 关注
原创 补提
#include#include#include#include#includeusing namespace std;int a[100005],b[100005],sum[100005];double ans1,ans2,ans3;int n;void solve(int w){int last[2]={0,0};int xoer[2]={0,0
2016-09-08 21:08:55 424
原创 (矩阵快速幂)HDU5667
注意n==1或n==2时最好特判一下。重点:(C是素数)#include#includeusing namespace std;typedef long long ll;typedef vector vec;typedef vector mat;ll a,b,c,n,p;mat mul(mat a,mat b){if (a[0].size
2016-04-19 00:28:57 398
原创 几个线段树经典运用
1、水果姐问题维护min、max、最大差。最大差=max((lson最大差,rson最大差,rson max- lson min);2、最大区间子段和维护sum,最大前缀,最小前缀,最大子段和。最大字段和=max(lson子段和,rson子段和,lson sum+rson 最大前缀 - lson最小前缀)
2016-04-13 03:05:14 475
原创 codevs 1047 邮票面值设计
#includeusing namespace std;int dp[1000005],a[50];int inf=1e9;int n,k,ans[50],mx=0;直接暴力不重复枚举所有情况,然后更新即可。void solve(){for (int i=1;;i++){dp[i]=inf;for (int j=1;j=a[j];j++)dp[i
2016-04-13 01:06:48 810
原创 IDA*
http://codevs.cn/problem/2541/这写法非常好代码:#include#includeusing namespace std;int n,a[20],ida,vis[1005];bool dfs(int i){if(a[i]==n) return 1;if(i==ida) return 0;int ji
2016-04-08 01:58:19 397
原创 云龙神ben神方法
给一个长度为N(100000)的序列,求其中第K大的一串字串。建立一个 S(i,n)的前缀和,再建立T(i,n)=-S(i,n)则每一个字串都可以被合法的S(i)+T(j)表示。方法同最小的N个和
2016-03-17 20:30:02 480
原创 状压DP小技巧
http://codevs.cn/problem/1647/NOI 2001 炮兵阵地单纯状压复杂度为2^30*1000=10^12,TLE。先预处理出单单一列的合法情况,共有60种。然后再处理出三列的合法情况,共有44728种。(注意判断三列是否合法,不是!(i&j&k),而是!((i&j)|(i&k)|(k&j))为合法。于是最终复杂度为约0.5亿,时限
2016-03-10 00:25:17 522
原创 BC 74 div2
T1:如果 s[i]!=0,那么s[i+1]=s[i]-1;首先查一遍,如果出现错误,ans=0;记0出现的次数为o则ans=26*25^o;代码:#includeusing namespace std;int mo=1e9+7;int main(){int t;cin>>t;int a,a0,ans,n,o;while(t--)
2016-03-07 12:20:40 325
原创 codevs 1257
http://codevs.cn/problem/1257/#includeusing namespace std;int a[55][55],b[55];int dp[55][55][1500];int ans;int main(){int n,m;cin>>n>>m;for (int i=1;ib[i]=i+b[i-1];for (i
2016-03-03 00:16:04 365
原创 洛谷p1373
原题:http://www.luogu.org/problem/show?pid=1373#重要:当输入数据较大时,一定要用scanf!!!!!
2016-02-27 10:12:42 422
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人