摘要: 思路:表示我很弱,这个想不出dp方程,参考网上代码#include#include#include#include#include#include#define inf 1 head[Maxn];void init(){ memset(dp,0,sizeof(dp)); memset(vi,0,sizeof(vi)); for(int i=0;i=inf) printf("-1\n"); else printf("%d\n",dp[1][0]); } return 0;} 阅读全文
posted @ 2013-08-11 16:28 fangguo 阅读(153) 评论(0) 推荐(0) 编辑
摘要: 思路:本来写了一个比较短的代码,并且各函数间的重用性比较高,就是结果悲剧的超时了...就是保证每个区间只有一种操作,那么更新时就要更新子节点的子节点,需要递归更新,结果是可想而知。其实这种做法是可以过得,只要将复杂度转移到求和上去(测试数据对求和操作应该要求不严)。但那样就不能直接保存p的三种情况值,因为这样会使得常数级非常大,超时。所以就要找到多重操作并存的方法。对于置为c,这个容易解决。关键是加和乘。思路见代码注释#include#include#include#include#include#define lson(x) x>1; }}tree[Maxn*4];int ans;vo 阅读全文
posted @ 2013-08-11 12:51 fangguo 阅读(300) 评论(0) 推荐(0) 编辑