2008年8月14日

pku1995

 

#include <iostream>
using namespace std;
 
int main()
{
    
long z, m, h, a, b, tmp,e;
    cin
>>z;
    
while (z--{
        cin
>>m>>h;
        tmp 
= 0;
        
for (long i = 0; i < h; ++i) 
        
{
            cin
>>a>>b;
            __int64 d 
= 1;    
            
                
long nlen = 0;
                
short Bin[34]={0};
            
while (b%2 != b)
            
{
                Bin[nlen
++= b%2;
                b 
>>= 1;
            }

            Bin[nlen] 
= b;
            d
=a;e=1;
            
for (long i = 0; i <=nlen; i++
            
{
                
                
if (Bin[i] == 1)
                
{
                
                    e 
= (e*d)%m;
                }

                d 
= (d*d)%m;
            }

        
            tmp
+=e;
        }

        cout
<<(m+tmp%m)%m<<endl;
    }

     
    
return 0;
}

posted @ 2008-08-14 07:13 OIO 阅读(233) | 评论 (0)编辑 收藏

2008年8月5日

pku2853

//题目的讨论中有另外一种的解法,不过下边这种方法也可以
 //此题跟2140是有区别的

 1#include <iostream>
 2#include<cmath>
 3using namespace std;
 4
 5int main()
 6{
 7     int n;
 8    cin>>n;
 9    while(n--)
10    {
11        int pronum;
12        double x1,x2; 
13  long number, result=0,j,x3;
14        cin>>pronum>>number;
15        x1=number;
16  x2=sqrt(float(2 * number));
17  x3=long(x2);
18        for(j=2;j < x3+1;j++)
19     if((2 * number % j == 0&& (j + 2 * number / j) % 2 != 0)
20                     result++;
21        cout<<pronum<<" "<<result<<endl;
22    }
     
23    
24    return 0;
25}

26
27

posted @ 2008-08-05 23:29 OIO 阅读(260) | 评论 (0)编辑 收藏

2008年5月20日

MFC程序 关闭程序窗口

建立一个对话框。

添加一个列表框,改变按钮 OK 的标题为 Close,删除 Cancel 按钮。将对话框的标题改为 TerminateTask。

在对话框中添两个按钮,标题分别为 Close App 和 Quit App。

CTerminateTaskDlg的OnInitDialog 方法中添加如下代码

BOOL CTerminateTaskDlg::OnInitDialog()
  {
      CDialog::OnInitDialog();
      CListBox * list=(CListBox *)GetDlgItem(IDC_LIST1);
      list->ResetContent();
      EnumWindows(EnumWindowsProc,(LPARAM)list);
      CenterWindow();
      return TRUE;  // return TRUE unless you set the focus to a control
  }

在上边添加函数

static BOOL CALLBACK EnumWindowsProc(HWND hwnd,LPARAM lParam)
{
    CListBox * list=(CListBox *)lParam;

    char  buf[256];
    GetWindowText(hwnd,buf,256);

    if(strlen(buf))
    {
  int idx=list->AddString(buf);
  list->SetItemData(idx,(DWORD)hwnd);
    }

    return TRUE;
}

建立 ID_BUTTON1,命名方法为 OnCloseApp,并在此方法中添加下列代码:
  void CTerminateTaskDlg::OnCloseApp()
  {
      CListBox * list=(CListBox *)GetDlgItem(IDC_LIST1);
      int idx=list->GetCurSel();
      if(idx==LB_ERR)
      {
  MessageBox("You must select a window to active!",
      "Error",MB_OK|MB_APPLMODAL);
  return;
      }
      HWND hWnd=(HWND)list->GetItemData(idx);
      ::PostMessage(hWnd,WM_CLOSE,0,0L);
      EndDialog(IDOK);
  }

编译并运行此例子程序。

可以用HWND   hWnd   =   ::FindWindow(NULL,"windows name") ;

关闭一个制定的程序,还可以用上边的程序查看具体的windows name,注意windows name为窗口的caption。

posted @ 2008-05-20 21:44 OIO 阅读(2877) | 评论 (0)编辑 收藏

2008年5月14日

windows编程

 case WM_CLOSE:
       return 0;


在窗口消息处理时加上上边两句,程序就只能用资源管理器关闭了

----封装的越多,越方便,越臃肿,越让人不自在,我们只是要找到平衡点

posted @ 2008-05-14 21:56 OIO 阅读(180) | 评论 (0)编辑 收藏

2008年5月9日

L宏

l"string"表示unicode字符串,是const   wchar   *类型,一个字符有16位。而_t("string")的含义和_unicode宏定义有关,如果_unicode定义,则_t("string")和l"string"一样,否则_t("string")是普通字符串。  
   
  char   buff[]   =   "string";  
  wchar   buff[]=l"string"


--谢谢两位的回复,这个是编译器相关,我改正了

posted @ 2008-05-09 10:57 OIO 阅读(975) | 评论 (2)编辑 收藏

2008年5月8日

bmp图片格式学习(c++代码)

     摘要:   //这个程序用来读取256*256大小的单色bmp黑白图片,适当修改就可读取任意大小任意//颜色的bmp图片,在生成文件里,0和1表示黑白,不过用记事本查看会有乱码//可以用UE查看16进制形式,没有问题的#include <fstream>#include <iostream>using namespace std;...  阅读全文

posted @ 2008-05-08 10:00 OIO 阅读(5007) | 评论 (3)编辑 收藏

2008年3月12日

构建ubuntu上的java开发环境

1,安装sun-java5-* ,用新立得在安装过程中会有个提示
      就是按照要求在sun的网站 上下载相应的文档sun-java5-doc ,放到/tmp文件夹下,
      然后输入RETURN回车就可以安装好JDK了,当然JRE也安装好了
      估计java6的包也一样安装
2,下载Eclipse IDE ,去官方网站下吧,速度很快
      下载了tar.gz文件直接解压就可以用了,什么也不需要设置

就是这么简单,呵呵,现在我可以在ubuntu上查看和编辑java项目了。

posted @ 2008-03-12 14:46 OIO 阅读(279) | 评论 (0)编辑 收藏

Hibernate学习笔记一----印象

Hibernate是替JAVA设计的轻量级O/R映射服务,即对象/关系型数据库映射(Object/Relational Mapping)

JDBC+DAO存在很多困难,很难做到把关系表记录完整的映射到持久对象的关系上来,这主要体现在多表的关系无法直接映射到对持久对象的映射上 来,可能是一个表映射多个持久对象,有可能是多个表映射一个持久对象,更有可能的是表的某些字段映射到一个持久对象,但是另外一些字段映射到别的持久对象 上。

Hibernate试图弥补这些缺陷

我的感觉是应用hibernate简化数据库操作,确实有着很大的优势和前景

posted @ 2008-03-12 14:32 OIO 阅读(219) | 评论 (0)编辑 收藏

2008年2月27日

ubuntu7.10边配置边学习

前言:
安装ubuntu7.10以后就不再用suse了,虽然感觉开始时suse更华丽,可是对于新手,ubuntu基于debian的apt-get还是让我感觉更容易接受。利用
sudo apt-get install compiz compiz-gnome compiz-fusion-*
compizconfig-settings-manager libcompizconfig-backend-gconf
可以方便的开启3D效果,于vsita有过之而无不及,这也是我选择ubuntu而不是arch等其他出色linux版本的原因。当然安装3D效果有一定危险,还是慎用。
开始:
下边是我配置ubuntu的一些心得体会:
一,安装  这个过程很简单,ubuntu的安装和XP一样简单,相关内容可以google得到(一定要善于google),我的ubuntu在自己的本本上安装的很顺利,连nvidia的显卡驱动也可以用,所以这一步并不麻烦,这里不细说了。
二,安装好了以后先要更新系统。
sudo gedit /etc/apt/sources.list
在里边添加源
deb http://******或ftp的,最好是官方的,一定要是7。10版本的源,cn99速度很快,我的源经常会换,这个可以自己设定。
然后更新
sudo apt-get update
sudo apt-get upgrade
就可以了
三,谈谈一些软件的安装,没有先后顺序,大家根据需要选用
1,compiz
sudo apt-get install compiz compiz-gnome compiz-fusion-*
我玩了一阵之后就有点腻了,具体的设置可以看这篇文章
http://www.osxcn.com/ubuntu/howto-install-compiz-fusion-on-ubuntu.html
我会在这篇文章里多多引用
Nicky's blog,我从他的文章里学到很多,我只是汇总自己的心得。
2,QQ
可以用pidgin登入,这个ubuntu自带,还可以用EVA,这个需要安装java环境,但是因为腾讯(不知是爱还是该恨)经常更换协议,所以更多的时候建议用
wine,wine的安装在下边提到,然后用wine模拟登入,wine和scim输入法会有些冲突,google的话会很快解决,就是更改下scim的设置。
3,wine
这真是个天才的软件,很大程度上解决了ubuntu软件支持的问题,还可以用来“魔兽”,我还没试过,先说下下载和使用
用新立得下载,对于ubuntu的软件,自己下载源码编译当然最好,但是对于新手,并不能忽略源码编译错误所造成的困难,所以建议如果不是十分必要,就用新立得,虽然它的缺点也很明显,就是太透明,有时候不小心你甚至找不到安装的目录。
对于wine下运行qq,建议用wine运行qq的安装程序安装一次,而不是直接运行qq.exe

删除Tencent/QQ/TIMPlatform.exe这个文件,以免运行后崩溃。
很好的文章在这里http://dangaoz.jsp-tech.cn/2007/10/ubuntuwineqq.html
4,mplayer
我自己这个软件安装的不好,给个链接,大家自己去试试吧http://tiyileo.blogbus.com/logs/8092937.html。我自己的mplayer性能并不让我满意
5,设置VIM
你可以通过设置自带的GVIM编写c或c++程序,我一般用这两种语言,编译器用gdb,gcc,g++。我认为编辑文本用gedit对于XP转来的用户更亲切,同样它具有语法高亮功能,关于配置VIM文件vimrc,实现个性话,具体的看个人喜欢,方法就google吧。通过首选项设置字体和背景,我很喜欢这个设置功能,使VIM看起来更个性。
6,安装主题
grub背景可以改,不过我觉得没有背景也很好看
然后是usplash主题,我的做法是下载so后改名替换原来/usr/lib/usplash/下的默认so文件,然后更新系统
sudo dpkg-reconfigure linux-image-$(uname -r)千万不要忘记这一步
为什么不用启动管理器
startupmanager?因为网上的一些相关做法我用不成功
然后是登入画面,这个比较容易,系统-》管理-》登入窗口-》本地 就可以更改
然后是一片土黄色,这个可以这样改 :把/etc/gdm/PreSession/Default中的default颜色改了就可以了 ,颜色值可以从桌面改变背景颜色那查出来
然后是splash screen图片,我觉得可有可无,启动软件更改图片就可以,很容易
最后安装桌面主题,在桌面右键就可以设置,很简单吧?还可以个性化边框等信息
7,还有字体和输入法的问题,其实应该在开始解决,这也是个相对麻烦的问题,网上有很多资料,雅黑字体在很多网站已经不提供下载了,大家根据需要安装吧

还有很多软件,以后再补充介绍吧,介绍个linux软件的网站
http://linuxtoy.org/
里边可以找到很多很有意思的软件,小便簽。

当然你可以到ubuntu中文论坛去寻找帮助,里边有很多相当好的文章,尤其是新手区,我在这里只是总结自己的经验,希望对大家也能有所帮助,希望用ubuntu的人越来越多。大家自己有什么配置方面独特的方法,请多在评论里与我交流吧。

posted @ 2008-02-27 17:12 OIO 阅读(731) | 评论 (1)编辑 收藏

2008年1月17日

我所做的DP题目-pku版

pku1080
pku1088
pku1160
pku1191
pku1163
pku1179
pku1189
pku1338
pku1458
pku1038
pku1170

posted @ 2008-01-17 10:14 OIO 阅读(297) | 评论 (0)编辑 收藏

仅列出标题  
<2024年11月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567

导航

统计

常用链接

留言簿(1)

随笔档案

搜索

最新评论

阅读排行榜

评论排行榜