• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
 






Siriuslzx

 
 

Powered by 博客园
博客园 | 首页 | 新随笔 | 联系 | 订阅 订阅 | 管理
上一页 1 2 3 4 5 6 ··· 12 下一页

2015年10月20日

C++11 原始字符串
摘要: 先看一下C++11标准里的字义(2.14.5):raw-string: " d-char-sequenceopt ( r-char-sequenceopt ) d-char-sequenceopt "r-char-sequence: r-char r-char-sequence r-charr... 阅读全文
posted @ 2015-10-20 21:33 Siriuslzx 阅读(1708) 评论(1) 推荐(0)
 

2015年10月17日

用C++11实现的assign功能
摘要: assign是boost 的一个对容器赋值的库,可以用非常简洁甚至看起来不像合法C++代码的方式对容器操作,详情可参考罗剑锋的《boost指南》。 下面是我自己实现的代码: 下面是测试代码: 说说自己的心得吧:最初assign最爽的地方是能一次插入很多个元素(虽然本质上是调用了n次插入),在C++1 阅读全文
posted @ 2015-10-17 17:26 Siriuslzx 阅读(1528) 评论(0) 推荐(0)
 

2015年6月27日

提取文件名(非查找文件)
摘要: 曾经有这么一个需要,就想自己实现一个。虽然我知道java内置文件操作的库而C++没有,但还是不想换语言(文人相轻,程序猿更相轻)。于是就上网找了一段C版本的代码,就是这个: 1 #include 2 #include 3 #include 4 #include 5 #include 6 u... 阅读全文
posted @ 2015-06-27 18:14 Siriuslzx 阅读(451) 评论(0) 推荐(1)
 

2013年10月4日

UVA 1473&LA 4986 - Dome of Circus
摘要: 题意:给出空间内一些Z>0的点,保证有点不在Z轴上,求一个体积最小的包含所有点的圆锥,输出其h和r。思路:基本所有人都能想到二维化,问题就转化成了在第一象限内有一些y>0的点,用一条斜率 2 #include 3 #include 4 using namespace std; 5 #define N 10010 6 struct Point{ 7 double x, y; 8 Point(double _x = 0, double _y = 0):x(_x), y(_y){} 9 Point operator-(const Point &P)const{ retur... 阅读全文
posted @ 2013-10-04 14:44 Siriuslzx 阅读(390) 评论(0) 推荐(0)
 

2013年10月1日

UVA-11437 Triangle Fun
摘要: 其实这题可以按部就班地来算的,可是我总是先把它当数学题算,可以推出Spqr= 1/7 Sabc。证明如下:连接DE,设Sabc=1,则Sabe=2/3,Sabd=1/3,Sbde=1/9,Sade=4/9。Sabp:Sdbp=Sape:Sdpe=AP:PD=Sabe:Sdbe=2/3:1/9=6:1;同理BP:BE=3:4。如此重复3次可得:DP:PR:RA=1:3:3。所以Sabp=1/3*6/7=2/7,同理bulabula,所以Spqr=1/7。顺便说一句,多谢陈老湿整理的模板。 1 #include 2 typedef struct Point{ 3 double x, y;... 阅读全文
posted @ 2013-10-01 19:46 Siriuslzx 阅读(323) 评论(0) 推荐(0)
 

2013年8月6日

UVA 10491 - Cows and Cars
摘要: 题意: 一共有a+b扇门,其中a扇门后面是牛,b扇后面是车。在你任意选中一个门以后,主持人会打开c扇后面是牛的门,问你要不要换另一个未打开的门。咳咳,其实题目就要你输出总是换门能获奖(选中车)的概率。分析: 其实呢,只要换门,获奖概率是一定变大的,这点稍后证明,先解决题目。开始时,任选一个门获奖概率为p1=b/(a+b),排除c个门后,被选中的门的概率不变,剩下(a+b-c-1)个门的总概率是b-b/(a+b),所以换门后每个门的概率为:p3=(b-b/(a+b))/(a+b-c-1),这就是答案了。现在证明概率变大:列不等式p3>p1,化简后得b*c > 0,恒成立,得证。为什么 阅读全文
posted @ 2013-08-06 10:36 Siriuslzx 阅读(290) 评论(0) 推荐(0)
 

2013年8月1日

CF 223C - Partial Sums
摘要: 题意:给出一个数列a[n],规定一种操作:用其前n项和s[n]覆盖a[n],一共操作k次,输出数列a。1109),把k化为2进制,按位&1,是1就加上相应的2^n,很方便有木有?!无奈其复杂度是O(n3)的,当n=200时就差不多TLE了;而且也很耗空间。由此得出结论:当对数列进行不规则变换时,用矩阵做;当进行纯洁的变换时,还是找规律吧O__O"…最后找到的规律为:Sn=sum(Xn-i * ai),i=1 5 #include 6 typedef long long LL; 7 8 const int N = 2005; 9 const int Mod = 10000000 阅读全文
posted @ 2013-08-01 21:18 Siriuslzx 阅读(381) 评论(0) 推荐(0)
 

2013年7月14日

poj 3273 - Monthly Expense
摘要: 这题和poj3258 类似,不同的是那个是最小值最大化,这个是最大值最小化,都是二分枚举去验证。验证最小值时是遇到比它小的就合并,验证最大值时是遇到就合并直到比它大。 1 #include 2 #define N 100005 3 int m,n,s[N]; 4 bool ok(int x) 5 { 6 int cnt=1,f=0,i; 7 for(i = 1; i x)10 {11 if(i-f == 1)12 return 0;13 else{14 ... 阅读全文
posted @ 2013-07-14 14:14 Siriuslzx 阅读(202) 评论(0) 推荐(0)
 

2013年5月27日

hdu 4565 - so easy
摘要: 题意:求ceil((a+√b)n)%m,0< a, m < 215, (a-1)2< b < a2, 0 < b, n < 231。思路:若(a+√b)n == x + y·√b(x、y为整数),则(a-√b)n == x - y·√b。又因为a-1 < √b < a,所以0 < (a-√b)n < 1,即x-1 < y·√b < x,所以ceil((a+√b)n) == 2x。接下来事情就容易多了,同时对x、y两部分进行快速幂取模即可,证明略。 1 #include <cstdio&g 阅读全文
posted @ 2013-05-27 00:11 Siriuslzx 阅读(941) 评论(0) 推荐(0)
 

2013年5月8日

UVA 12293 - Box Game
摘要: 题意:bulabulabula,本质上就是两人轮流操作,把一个正整数a转化为b,b<a<=2b。最后谁摊上1谁就输了。思路:第一想法就是找到必胜态和必败态。以前我总结的一个经验是:必胜态只能转化为必败态:必败态既可以转化为必胜态,又能转化为必败态,但是一定能转化为必胜态。这题恰恰反过来了。最初的必败态是n=1,然后推算可得,必败态为n=2^i-1。 1 #include <cstdio> 2 int main() 3 { 4 int n; 5 while(scanf("%d",&n),n) 6 { 7 if(n&(n+1))print 阅读全文
posted @ 2013-05-08 23:17 Siriuslzx 阅读(206) 评论(0) 推荐(0)
 
上一页 1 2 3 4 5 6 ··· 12 下一页