摘要: 没什么说的裸线段树,注意细节就好了!!!代码如下: 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #define ll __int64 9 #define pi acos(-1.0) 10 #define MAX 100003 11 #define M 10007 12 #define lson i>1; 39 } 40 }T[MAX*4]; 41 void down(int i) 42 { 43 T[lson].Mul(T[i].mul); 44 ... 阅读全文
posted @ 2013-08-23 22:08 _随心所欲_ 阅读(198) 评论(0) 推荐(0)
摘要: 思路:由于m非常小,只有5。所以用dp[i]表示从位置i出发到达n的期望步数。那么dp[n] = 0dp[i] = sigma(dp[i + j] * p (i , i + j)) + 1 . (-m 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #define ll __int64 9 #define pi acos(-1.0)10 #define MAX 5000211 using namespace std;12 double a[MAX][11],p[MAX][11],consts[MAX],q. 阅读全文
posted @ 2013-08-23 20:26 _随心所欲_ 阅读(402) 评论(0) 推荐(0)
摘要: 思路:刚开始用STL中的栈,一直RE……,之后改为手动模拟栈操作,在注意点细节就可以了!!!代码如下: 1 #include 2 #include 3 #include 4 #define M 1000001 5 using namespace std; 6 int A[M],B[M],a[M],s[M],cur,x,q,l,r; 7 char c; 8 int main() 9 {10 while(scanf("%d",&q)!=EOF){11 l=r=1;12 while(q--){13 scanf("%s",&c);14 ... 阅读全文
posted @ 2013-08-23 19:11 _随心所欲_ 阅读(327) 评论(0) 推荐(0)
摘要: 思路:▶ 设 win(i,x,y) 表示当前可以买的物品是 i,先手有 x 元,后 手有 y 元时,先手是否必胜 ▶ win(i,x,y) ⇐⇒∃j((j > i)∧(x ≥ si−sj)∧¬win(j,y,x−si +sj)) ▶ 其中 si = Ci + Ci+1 +···+ CN ▶ 注意到 x + y = A + B−s1 + si,即 win(i,x) := win(i,x,y)▶ win(i,x) =⇒ win(i,x + 1) ▶ 设 m(i) = min{x : win(i,x)},则 ¬win(i,x) ⇐⇒ x ≤ m 阅读全文
posted @ 2013-08-23 16:35 _随心所欲_ 阅读(680) 评论(0) 推荐(1)
摘要: 思路:对于给定的n,s(i)即将n分解为i个数的组合数,也就是在n-1个位置插入i-1个板即C(n-1,i-1);∑S=2^(n-1);phi(1000000007)=1000000006;对于n>=phi,有a^n%c=a^(n%phi(c)+phi(c))%c。代码如下: 1 #include 2 #include 3 #define ll __int64 4 #define mod 1000000007 5 #define phi 1000000006 6 char s[100002]; 7 ll pow(ll a,ll b) 8 { 9 ll ans=1;10 whil... 阅读全文
posted @ 2013-08-23 14:46 _随心所欲_ 阅读(196) 评论(0) 推荐(0)
摘要: 思路:由于c[i]要么是1,要么是2.所以当c[i]中没有1的时候就不可能得到奇数;再就是如果m 2 #include 3 int main() 4 { 5 int n,q,i,a,mm,b; 6 while(scanf("%d%d",&n,&q)!=EOF) 7 { 8 for(i=1;i<=n;i++){ 9 scanf("%d",&a);10 }11 b=0;12 for(i=1;i<=n;i++){13 scanf("%d",&a);14 ... 阅读全文
posted @ 2013-08-23 14:28 _随心所欲_ 阅读(230) 评论(0) 推荐(0)