腾讯马拉松
bladeLight
这个作者很懒,什么都没留下…
展开
-
大笨钟
#include#includeint T,x,q,t,k,kind;int main(){ scanf("%d",&T); while(T--){ scanf("%d%d",&x,&q); double res; while(q--){ scanf("%d%d",&kind,&k); if(kind==1){ res=原创 2013-03-29 21:12:25 · 1842 阅读 · 0 评论 -
错排公式
//错排公式 #include#include#define N 1000000007int t,n;long long f[105]={0,0,1};int main(){ for(int i=3;i<=105;i++) f[i]=(((i-1)*f[i-1])%N+((i-1)*f[i-2])%N)%N; scanf("%d",&t); while(t--){原创 2013-03-30 22:04:51 · 791 阅读 · 0 评论 -
1001
代码写的很挫,需要处理的特殊情况是分数最小的包括id最小的时候,要保留id最小的。我按照分数从大到小排序,分数相等时按照id从小到大排序,这样,可能出错的是a[0]和a[1],当两者的pi相等时,需要交换一下两者的位置。#include#include#include#includeusing namespace std;int n;struct Node{ int i原创 2013-03-24 21:29:53 · 822 阅读 · 0 评论 -
1004 大数
大数加法是抄的模板,要注意的是,m如果小于3,则肯定不行,因为最少的是三角形。m的取值范围是3#include#includeusing namespace std;string n,m,p;string Sum(string s1,string s2){ if(s1.length()<s2.length()){ string temp=s1; s1=s原创 2013-03-24 21:34:22 · 807 阅读 · 0 评论 -
1005
这也是一道模拟题,WA了三次,少考虑了很多特殊情况。1、当只有一个箱子的情况,如果不等于0,则不行,等于0,则ok。2、多个箱子的时候,从前往后推,如果最后一个箱子的容量为0,则ok,否则,不行。#include#includeint a[1000005];int n,m;int main(){ scanf("%d",&n); while(n--){ scanf("%原创 2013-03-24 21:31:54 · 863 阅读 · 0 评论 -
腾讯马拉松 第五场 第一题
一定要考虑清楚,情况,首先sumk=(k1+k2)^k*sum,然后需要按照k1+k2分情况讨论,具体见代码:#include#include#includeint t;int n;double k1,k2;__int64 k,sum;int tmp;int main(){ scanf("%d",&t); int cases=1; while(t--){ sc原创 2013-03-26 12:10:22 · 943 阅读 · 0 评论 -
玩转十滴水
这道题目是一道模拟题目,但是我想的过程中遇到了很多问题,感觉脑袋很乱的感觉。最后参考了别人的代码:http://www.xue5.com/Developer/Software/684397.html自己照着他的思想重写了一遍,但是比他写的要长。思想是:每次走一步,这需要用d数组来记录到起始点的距离,如果有两滴水同时到达的情况,则可以根据距离判断,直接将该格子的值++。//7908622 2原创 2013-03-28 11:03:39 · 1163 阅读 · 0 评论 -
拼车
//F[a, b]表示有a个人,b辆车时最少的车费//F[a, b] = min{//F[a, b-1], //表示b辆不坐 //F[a-1, b-1]+在b车坐一个人价钱,//F[a-2, b-1]+在b车坐2个人价钱,//F[a-3, b-1]+在b车坐3个人价钱,//F[a-4, b-1]+在b车坐4个人价钱 //}//7906348 2013-03-27 22:30:13原创 2013-03-28 09:36:40 · 1635 阅读 · 0 评论