![]() |
|
Spaces home 流 浪 的 枫 之 羽PhotosProfileFriends | ![]() |
命运呼叫转移。。。。。。。 LESSWATTS.ORG开源项目介绍LESSWATTS.ORG开源项目简介: LESSWATTS.ORG开源社区于2007年9月20日由英特尔公司推出它用以满足从数据中心服务器到个人移动设备的整个计算环境对不断增长的更高能效的需求。该社区的项目集成于开放源代码软件中,可降低Linux服务器、PC、电子产品的能耗。地址:http://www.lesswatts.org 以下是社区中的各个开源项目的介绍: 1. PowerTOP: 介绍: PowerTOP 是一种linux下的工具,它可以帮助你找到那些在你计算机空闲时linux内核中那些耗电的程序。在linux2.6.21的版本里,linux内核实现了空闲循环机制,不再有固定的1000HZ的timer tick事件。这样的结果可以使CPU在系统空闲的时候处于长时间的低能耗状态,可以在理论上达到节省大量电的目的。然而再内核空间和用户空间中会有很多事件会破坏这种体系。 PowerTOP能通过ACPI(高级配置和电源接口)把内核中的信息方便的显示在我们的显示器上使我们能观察到我们的系统在省电模式的状态下什么程序导致了我们最大的耗电。 PowerTOP想做到以下4个方面的目标: 能够很好的显示各种硬件的省电特性。 能够显示那些耗电的程序,对其耗能进行预防 帮助Linux开发者测试他们的应用程序并且帮助他们优化应用程序(能耗) 提供给你一些建议使你的应用程序能达到最少的能耗。 使用要求: 如果想使PowerTOP工作良好,linux的内核必须实现了tickless idle(空闲循环)机制,也就是版本要再2.6.21以后。目前linux的内核只有32-bit的才支持tickless idle(空闲循环)机制,而64-bits内核再v2.6.23后才能有这种特性。 PowerTOP 最好工作再笔记本电脑上,或者使最近推出的英特尔的移动处理器。当然使用PowerTOP在笔记本上时,你应该让它运行再电池模式下。 版本: 目前PowerTOP的最新的版本时1.9,支持的系统时Debian*, Gentoo and Fedora*. 代码下载地址: http://www.lesswatts.org/projects/powertop/download/powertop-1.9.tar.gz 个人评价:这个组件目前感觉时Intel 玩具,用来节省笔记本电池用电,以后可能会发展成提高linux上笔记本用电池的工作效率。 2. tickless idle 介绍: 传统的linux内核是为每个CPU使用周期性的计时机制,这个计时器为许多事件作为计时,比如:处理计算、负载调度、维持时间片调度任务。老的linux内核使用100HZ(10ms的计时器,新的内核的linux使用的是250HZ(4ms)或1000HZ(1ms)的计时器。这个周期性的计时事件我们常常叫做“时间滴答”。这个方法设计简单,但是它有一个致命的缺陷就是时间滴答周期性的发生,不顾处理器现在正处于忙还是闲的状态。如果处理器处于闲置,它也会每隔一段周期去唤起正处于省电模式下的处理器。这样它就消耗了笔记本的电池的使用时间或者是对于服务器来说消耗不必要的电力。 目前这个项目采用tickless idle(空闲循环)的机制,Linux内核将会在CPU空闲时消除这个周期性的“时间滴答“的机制。这样的机制允许CPU在很长一段时间内始终保持在省电的模式下,降低系统的总功耗的消耗。 我们应该注意一个问题:如果CPU频繁的被一些不必要的计时事件唤起,那么空闲循环机制的优势将消失。这个项目就是整理所有的能增强处于新内核中的tickless idle特性机制的补丁(deferrable timers),以达到能尽可能长时间的利用tickless idle机制。 Deferrable timers代码下载地址: http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=6e453a67510a17f01b63835f18569e8c3939a38c HDOJ1527问题: 碰到这道题时我的思路: 设集合A, B分别为先手能赢和后手能赢的二元无序对(x,y)的集合 先从最基础的开始考虑,(n,0) (n,n) 属于A,因为这样的情况先手肯定能赢(n为正整数,下同) 如果存在(a,b),对于一切n,(a-n,b-n)均属于A,则(a,b)属于B 接下来从先手的角度分析,如果他能在移动石子后留给对手(2,1)个石子,那么他就能赢,于是 找出一个不属于A的最小对,(5,3), 这个元素肯定属于B集合,因为从中任意取出元素后的结果肯定属于A集合 这时发现,B集合相对A集合元素少很多,只要找出B集合中元素的特征,就能解决这个问题。 一旦B中包含(x,y)对,A中就会相应的包含(x, y+n), (x+n, y), (x+n,y+n) 公式可以见这个博客 HDOJ2136Problem Description
Everybody knows any number can be combined by the prime number.Now, your task is telling me what position of the largest prime factor.
The position of prime 2 is 1, prime 3 is 2, and prime 5 is 3, etc.Specially, LPF(1) = 0. Input
Each line will contain one integer n(0 < n < 1000000).
Output
Output the LPF(n).
Sample Input
1 2 3 4 5 Sample Output 0 1 2 1 3 http://acm.hdu.edu.cn/showproblem.php?pid=2136 算法思想:采用素数筛选法改进以符合这道题目! memset(prime, -1, sizeof(prime)); HDOJ2102Problem Description
可怜的公主在一次次被魔王掳走一次次被骑士们救回来之后,而今,不幸的她再一次面临生命的考验。魔王已经发出消息说将在T时刻吃掉公主,因为他听信谣言说吃公主的肉也能长生不老。年迈的国王正是心急如焚,告招天下勇士来拯救公主。不过公主早已习以为常,她深信智勇的骑士LJ肯定能将她救出。
现据密探所报,公主被关在一个两层的迷宫里,迷宫的入口是S(0,0,0),公主的位置用P表示,时空传输机用#表示,墙用*表示,平地用.表示。骑士们一进入时空传输机就会被转到另一层的相对位置,但如果被转到的位置是墙的话,那骑士们就会被撞死。骑士们在一层中只能前后左右移动,每移动一格花1时刻。层间的移动只能通过时空传输机,且不需要任何时间。 Input
输入的第一行C表示共有C个测试数据,每个测试数据的前一行有三个整数N,M,T。 N,M迷宫的大小N*M(1 <= N,M <=10)。T如上所意。接下去的前N*M表示迷宫的第一层的布置情况,后N*M表示迷宫第二层的布置情况。
Output
如果骑士们能够在T时刻能找到公主就输出“YES”,否则输出“NO”。
Sample Input
1 5 5 14 S*#*. .#... ..... ****. ...#. ..*.P #.*.. ***.. ...*. *.#.. Sample Output YES 简单的BFS void bfs() } } } 但是要一定分清楚换层! 解决C#"线程间操作无效: 从不是创建控件“XXXX”的线程访问今天在继续写我的桌面搜索,因为涉及了多线程所以在VS2005下出现RT所示的问题, 百度搜索一下解决方法, 有些说用委托但是不怎么好用,发现只要设置一个属性就可以解决问题: System.Windows.Forms.Control.CheckForIllegalCrossThreadCalls = false; MSDN,显示该属性的有关说明如下: 访问 Windows 窗体控件本质上不是线程安全的。如果有两个或多个线程操作某一控件的状态,则可能会迫使该控件进入一种不一致的状态。还可能出现其他与线程相关的 bug,包括争用情况和死锁。确保以线程安全方式访问控件非常重要。 .NET Framework 有助于在以非线程安全方式访问控件时检测到这一问题。在调试器中运行应用程序时,如果创建某控件的线程之外的其他线程试图调用该控件,则调试器会引发一个 InvalidOperationException,并提示消息:“从不是创建控件 control name 的线程访问它。” 此异常在调试期间和运行时的某些情况下可靠地发生。强烈建议您在显示此错误信息时修复此问题。在调试以 .NET Framework 2.0 版之前的 .NET Framework 编写的应用程序时,可能会出现此异常。 可以通过将 CheckForIllegalCrossThreadCalls 属性的值设置为 false 来禁用此异常。这会使控件以与在 Visual Studio 2003 下相同的方式运行。 讲述Lucene相关站点和书籍- -Introduction to Text Indexing with Apache Jakarta Lucene Advanced Text Indexing with Lucene 关于Chedong的blog(非常著名,汉语) Lucene全文检索实践 关于Lucene的基本概念 Lucene使用者沙龙(为Chedong和一些朋友的沙龙,有ppt和http://blog.cnblog.org/archives/2005/07/luceneaecee.html Lucene研究之一——起源、现状及初步应用http://jalorsoft.com/holen/holen_lucene_01.html Lucene研究之二——系统结构分析初步(已阅) 系统讲了Lucene架构(英文) Doug Cutting(Lucene作者)做的关于Lucene的架构解说 English StopWords列表 书籍: Lucene in action 再贴一个笑话!~ 一夏日,酷热。
一中年男子出差,因天晚住进一个小旅店,正要就寝突然电话响起:“对不起我是前台,我们旅店有特殊服务你需要吗?”
“不了谢谢”,男子回答。
放下电话后,该男子辗转反侧,难以入睡,于是抓起电话打给前台说:“给我来一个特殊服务”,不一会一年轻女郎进来。
男子问一夜多少钱?女子说“一百”
男子说:“好脱了吧,坐沙发上。”
女子脱光坐在沙发上。
男子回到床上躺下,不一会传来酣声……
天快亮时女子再也忍受不住将男子叫醒,你叫我来干什么?
嘿嘿!
男子说:蚊子太多我睡不着…… 有趣的IT笑话亲爱的技术支持:
我急需您的帮助。我最近将“女朋友7.0”升级到“妻子1.0”,发现这个新程序意外地启动了孩子生产程序,而且占用了大量的空间和珍贵的资源。这在产品的使用手册中没有提到。此外“妻子1.0”自动将自己安装到其他的所有的程序中,它随系统同时启动,监控整个系统的状态。男人夜出2.5”和“高尔夫 5.3”无法再运行,一旦运行该程序系统即行崩溃。试图运行“周日足球6.3”经常失败,而“周六购物7.1”却代之运行。看来我无法保留“妻子 1.0”,因为它和我喜欢运行的任何程序都不相容。我打算回到“女朋友7.0”,可是这个程序又无法卸载。
回信:
亲爱的用户:
这是个很普通的问题,产生于你对基本原理的不了解。
很多的男人将“女朋友7.0”升级到“妻子1.0”,以为“妻子1.0”是一个“实用与娱乐程序”。然而“妻子1.0”却是个操作系统,是被设计用来运行所有程序的。你不可能清除“妻子1.0”,也不可能回到“女朋友7.0”,因为“妻子1.0”的设计中不具有这个功能,无论是卸载、删除或是清除已经安装在系统中的这些程序文件,都是不可能的。
有些人曾试图安装“女朋友8.0”或者“妻子2.0”,结果是产生了更多的问题(参见手册中的赡养费/孩子的养育/律师费用)。我安装过“妻子1.0”,我建议你保持现在的安装状态,妥善解决遇到的困难。
当任何错误或问题出现的时候,不论你认为是什么原因引起的,你必须运行“C:\我道歉”程序,并且避免使用“退出键”。必要时可能需要运行“C:\我道歉”多次,希望最终能使*作系统恢复到初始状态。
“妻子1.0”虽然是一个需要高保养的程序,但同时对人可能是非常有益的。充分地利用它,需要买些额外的软件比如“鲜花2.0”和“巧克力5.0”。 不要在任何情况下安装“秘书(短裙版)”,因为“妻子1.0”不支持这种程序,而且系统多数时候肯定会崩溃。 About Join in Open Source SoftWare Project确实每个开源项目对于你所拥有的能力都没有任何要求,由于项目是有分工的,所以有很多的工作需要人来做。这样,对于不同能力的人自然会有不同的可以胜任的工作。你是一个初学者,当然有初学者可以胜任的工作。例如,项目周边的事情,更新各种项目的数据,负责简单的答疑等等。如果,你想加入进开源项目,自然应该从这里做起,慢慢熟悉项目。当你熟悉项目后,自然就比其他人有更多的优势来参与近开发工作,这时你想升级为开发人员就自然容易很多。我也清楚有很多的初学者加入前都会说:”我是初学者,可能帮不上什么忙?“但是,这恰恰错了,你是初学者那么自然就不会有很难的任务给你,因为这样的话项目就停滞了,谁也不会那么做,你自己也不愿意承担。关键点:在于你自己。加入项目后,由于各自都各自的想法或者工作,所以没有人来过问你。但是,你却可以自由的根据自己的能力来提问,而且在项目中,应该会有很多相应的文档可以浏览,或者别人的讨论可以看到,这时你就可以更加轻易的理解项目,关键点在于你自 己,是否上心,只要稍微有心就可以负责某些工作,再稍微用点心,你就会发现自己可以编写某些方面的代码。当你真的有心的话,你就可以融入项目中,这时谁也不会在意你的能力,而且项目离开了你就是一种损失,因为某些方面的工作没有人来做了。大家在同一个项目中的主要目的是为了让项目成功,对于学习大家都是赞同的,因为只有学习了,才可能更加有助于为项目的成功出力,而且谁都需要学习。但是,如果你只是学习,这里的学习仅仅是......怎么表达呢?在一旁看?或者只是询问别人某些事情?我想那根本不是学习,那只是你自己的一种幻觉,因为你根本没有学习到什么东西。你从不动手,你从不想去如何解决某些问题,你又不负责项目的任何工作,你 只是看?那和一个普通的旁人有什么区别呢?你高兴了可以来看看,不高兴就放在一边,这样也能叫做学习?再说,你没有付给任何人工资,别人又怎么能主动的来教你什么呢?所以,在开源项目中的学习就是实际的动手,实际的讨论,实际的负责,不断的在实践中学习到各种知识。 上面谈了这么多,不清楚对于初学者有没有帮助认识开源项目。 也许对于初学者来说,更加注重的是得到了什么,对于自己的付出并不在意,而开源项目似乎更加强调你付出了什么。 在我看来,其实这两点都是各自被自身的想法而扩大化了,其实参与一个开源项目,你在付出的同时你肯定得到了相当的知识与经验(这可以说是你人生的资本,如果你能声称你参与了linux内核的编写,相信你的工作之路会十分的顺畅,如果你声称参与了firef ox的编写,我想同样也不坏);而你在开源项目中,大家在帮助你的同时,也得到了你的帮助。 这样,才是一种正常的良性循环。 用C#对DBF数据库的操作现在在弄GIS的问题,需要读取一个dbf文件,查了很多资料原来是fp的数据库文件
下面是所用的代码。都很简单,就是格式上要注意。和用开的查询语句会有很大不同。
不过好像对于我要用到的没啥帮助!
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Data.Odbc; namespace readdbf
{ public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) conn.ConnectionString = connStr; string sql = @"select * from " + table; 启动用户实例的进程时出错(Sql Server Exoress)我遇到了一样的问题,参考如下的解决方法。
引用 启动用户实例的进程时出错 DBF文件格式1.文件头(32字节) ———————————————————————————— dbf文件头结构和字段类型描述结构用C语言表示如下: 一道排列组合题目!今天在群里师兄发了一道公务员试题:4个球放入8个编号不同的盒子,每个盒子可放0-4个,则有几种放法?
我们可以进行推广,就是m个球放入n个编号不同的盒子,每个盒子可放0-m个,则有几种放法?
解题思路1:
用递归:
1个盒子,m个球:1种方法
2个盒子,m个球:分别有(0,m) (1,m-1) (2,m-2)...(4,0) 共m+1种方法 设n个盒子,m个球有f(n,m)种放置方法,现取第1个盒子的球数分别为0,1,2,.,i,..m ,对于这m+1种情况中的第i种情况,有f(n-1,m-i)个含n-1个元素的字符串数组
全部拼起来即可 解题思路2:
/*这其实是一个n进制数的问题
假定存在一个m位的n进制数,他的k位上的数字表示第k个球所在盒子的编号,可以证明这个m位的n进制数和盒子的排列是一一对应的 我们知道,对于这种题目,可能的组合数为n^m,那么你只要把0- >n^m-1的数转换成n进制数,再检查对应的每位数既可知道每个球所在的盒子 所以唯一的难点就是整数转换成n进制数的问题,这个好像不是难题哦,学过计组的都应该知道除余法 也就是对于整数x, x%n表示n进制数个位上的数字,要求更高位的数字,要用x= x/n迭代*/ 递归的程序实现:
#include <cstdlib>
#include <iostream> using namespace std; int *a; int n; int cnt =0; void f( int len, int sum ){ int i; if( sum==0 ){ for( i=0; i<len; ++i ) cout<<a[i]<<" "; for( ; i<n; ++i ) cout<<0<<" "; cout<<endl; cnt++; return; } if( len==n-1 ) { a[len]=sum; for( i=0; i<=len; ++i ) cout<<a[i]<<" "; cout<<endl; cnt++; return; } for( i=0; i<=sum; ++i ){ a[len]=i; f( len+1, sum-i ); } } int main( )
{ int m; while(cin>>m>>n) { cnt = 0; a=new int[n]; f( 0, m ); cout<<cnt<<endl; delete a; } return 0;
} 第32届ACM亚洲预赛蓉城赛区传来捷报 我校学生摘取金牌 11月18日,在第32届国际大学生程序设计竞赛亚洲预赛成都赛区决赛中,我校计算机学院学生林乐、徐海东与理学院学生赖力组成的参赛队发挥出色,最终以高校排名第4位的优异成绩获得金牌,参赛成绩位列浙江省高校之首。 本届竞赛,共有经过预选赛后产生的89支代表队的267名学生进军成都赛区,可谓强队聚首,高手相逢,高校排名前3位的分别是北京大学、复旦大学、清华大学、中山大学,其中复旦和清华并列第二。 本届竞赛,我校参赛队在指导教师总教练刘春英的带领下,此前已多有斩获,分别获得长春赛区银牌1枚、北京赛区银牌与铜牌各1枚、南京赛区铜牌1枚。我校在本届ACM竞赛中刷新记录,实现摘取金牌的零的突破,令竞赛组办部门、高校界以及计算机界刮目相看。 我校自2003年9月开始组织学生参加大学生程序设计竞赛,并从2004年起在全校范围内挑选优秀学生组成ACM集训队,由专业指导教师实施备战训练。此外,计算机学院还于2005年针对该项赛事设计了每年举行6次月赛(其中含2次校级比赛)的竞赛制度,在学生中广泛普及ACM知识,训练学生利用计算机分析问题、解决问题的能力,全面提高学生程序设计水平,同时也为ACM集训队输送源源不竭的优秀选手。据统计,每年参加该项赛事的学生近2000人次。(教务处、计算机学院) |