↓ Skip to main content
  1. Categories/

ACM

2015

vimrc备份

·3888 words·8 mins
代码实现 1map <F9> :call SaveInputData()<CR> 2func! SaveInputData() 3 exec "tabnew" 4 exec 'normal "+gP' 5 exec "w! code/in.txt" 6endfunc 7 8 9 10"colorscheme torte 11" colorscheme murphy 12colorscheme elflord 13" colorscheme molokai 14"colorscheme elisex 15"colorscheme colorer 16"colorscheme blacklight 17"colorscheme blue 18"colorscheme darkblue 19"colorscheme evening 20"colorscheme shine 21 22 23 24 25"set fencs=utf-8,ucs-bom,shift-jis,gb18030,gbk,gb2312,cp936 26"set termencoding=utf-8 27"set encoding=utf-8 28"set fileencodings=ucs-bom,utf-8,cp936 29"set fileencoding=utf-8 30 31"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 32" 显示相关 33"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 34"set shortmess=atI " 启动的时候不显示那个援助乌干达儿童的提示 35"winpos 5 5 " 设定窗口位置 36"set lines=40 columns=155 " 设定窗口大小 37set go= " 不要图形按钮 38"color asmanian2 " 设置背景主题 39"set guifont=Courier_New:h10:cANSI " 设置字体 40syntax on " 语法高亮 41autocmd InsertLeave * se nocul " 用浅色高亮当前行 42autocmd InsertEnter * se cul " 用浅色高亮当前行 43"set ruler " 显示标尺 44set showcmd " 输入的命令显示出来,看的清楚些 45"set cmdheight=1 " 命令行(在状态行下)的高度,设置为1 46"set whichwrap+=<,>,h,l " 允许backspace和光标键跨越行边界(不建议) 47"set scrolloff=3 " 光标移动到buffer的顶部和底部时保持3行距离 48set novisualbell " 不要闪烁(不明白) 49set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [POS=%l,%v][%p%%]\ %{strftime(\"%d/%m/%y\ -\ %H:%M\")} "状态行显示的内容 50set laststatus=1 " 启动显示状态行(1),总是显示状态行(2) 51"set foldenable " 允许折叠 52set foldmethod=manual " 手动折叠 53"set background=dark "背景使用黑色 54set nocompatible "去掉讨厌的有关vi一致性模式,避免以前版本的一些bug和局限 55" 显示中文帮助 56if version >= 603 57 set helplang=cn 58 set encoding=utf-8 59endif 60" 设置配色方案 61"colorscheme murphy 62"字体 63"if (has("gui_running")) 64" set guifont=Bitstream\ Vera\ Sans\ Mono\ 10 65"endif 66""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 67"""""新文件标题 68"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 69"新建.c,.h,.sh,.java文件,自动插入文件头 70autocmd BufNewFile *.cpp,*.[ch],*.sh,*.java exec ":call SetTitle()" 71""定义函数SetTitle,自动插入文件头 72"map <F4> :call SetTitle()<CR> 73func SetTitle() 74 "如果文件类型为.sh文件 75 if &filetype == 'sh' 76 call setline(1,"\#########################################################################") 77 call append(line("."), "\# File Name: ".expand("%")) 78 call append(line(".")+1, "\# Author: 111qqz") 79 call append(line(".")+2, "\# mail: rkz2013@126.com") 80 call append(line(".")+3, "\# Created Time: ".strftime("%c")) 81 call append(line(".")+4, "\#########################################################################") 82 call append(line(".")+5, "\#!/bin/bash") 83 call append(line(".")+6, "") 84 else 85 let l = 0 86 let l = l + 1 | call setline(l,'/* ***********************************************') 87 let l = l + 1 | call setline(l,'Author :111qqz') 88 let l = l + 1 | call setline(l,'Created Time :'.strftime('%c')) 89 let l = l + 1 | call setline(l,'File Name :'.expand('%')) 90 let l = l + 1 | call setline(l,'************************************************ */') 91 let l = l + 1 | call setline(l,'') 92 endif 93 if &filetype == 'cpp' 94 let l = l + 1 | call setline(l,'#include <cstdio>') 95 let l = l + 1 | call setline(l,'#include <cstring>') 96 let l = l + 1 | call setline(l,'#include <iostream>') 97 let l = l + 1 | call setline(l,'#include <algorithm>') 98 let l = l + 1 | call setline(l,'#include <vector>') 99 let l = l + 1 | call setline(l,'#include <queue>') 100 let l = l + 1 | call setline(l,'#include <set>') 101 let l = l + 1 | call setline(l,'#include <map>') 102 let l = l + 1 | call setline(l,'#include <string>') 103 let l = l + 1 | call setline(l,'#include <cmath>') 104 let l = l + 1 | call setline(l,'#include <cstdlib>') 105 let l = l + 1 | call setline(l,'#include <ctime>') 106 let l = l + 1 | call setline(l,'#define fst first') 107 let l = l + 1 | call setline(l,'#define sec second') 108 let l = l + 1 | call setline(l,'#define lson l,m,rt<<1') 109 let l = l + 1 | call setline(l,'#define rson m+1,r,rt<<1|1') 110 let l = l + 1 | call setline(l,'#define ms(a,x) memset(a,x,sizeof(a))') 111 let l = l + 1 | call setline(l,'typedef long long LL;') 112 let l = l + 1 | call setline(l,'#define pi pair < int ,int >') 113 let l = l + 1 | call setline(l,'#define MP make_pair') 114 let l = l + 1 | call setline(l,'') 115 let l = l + 1 | call setline(l,'using namespace std;') 116 let l = l + 1 | call setline(l,'const double eps = 1E-8;') 117 let l = l + 1 | call setline(l,'const int dx4[4]={1,0,0,-1};') 118 let l = l + 1 | call setline(l,'const int dy4[4]={0,-1,1,0};') 119 let l = l + 1 | call setline(l,'const int inf = 0x3f3f3f3f;') 120 let l = l + 1 | call setline(l,'int main()') 121 let l = l + 1 | call setline(l,'{') 122 let l = l + 1 | call setline(l,' #ifndef ONLINE_JUDGE ') 123 let l = l + 1 | call setline(l,' freopen("code/in.txt","r",stdin);') 124 let l = l + 1 | call setline(l,' #endif') 125 let l = l + 1 | call setline(l,'') 126 let l = l + 1 | call setline(l,' #ifndef ONLINE_JUDGE ') 127 let l = l + 1 | call setline(l,' fclose(stdin);') 128 let l = l + 1 | call setline(l,' #endif') 129 let l = l + 1 | call setline(l,' return 0;') 130 let l = l + 1 | call setline(l,'}') 131 132 133 endif 134 if &filetype == 'c' 135 call append(line(".")+6, "#include<stdio.h>") 136 call append(line(".")+7, "") 137 endif 138 if &filetype == 'java' 139 call append(line(".")+6,"public class ".expand("%")) 140 call append(line(".")+7,"") 141 endif 142 "新建文件后,自动定位到文件末尾 143 autocmd BufNewFile * normal G23 144endfunc 145"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 146"键盘命令 147""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""v"""""""""""""""""""""""""""""""""""""""" 148 149nmap <leader>w :w!<cr> 150nmap <leader>f :find<cr> 151 152nmap <F8> :TagbarToggle<CR> 153 154 155" 映射全选+复制 ctrl+a 156map <C-A> ggvG"+Y 157map! <C-A> <Esc>ggVGY 158map <F12> gg=G 159" 选中状态下 Ctrl+c 复制 160vmap <C-c> "+y 161"去空行 162nnoremap <F2> :g/^\s*$/d<CR> 163"比较文件 164nnoremap <C-F2> :vert diffsplit 165"新建标签 166map <M-F2> :tabnew<CR> 167"列出当前目录文件 168map <F3> :tabnew .<CR> 169"打开树状文件目录 170map <C-F3> \be 171"C,C++ 按F5编译运行 172map <F5> :call CompileRunGcc()<CR> 173 174let g:tagbar_usearrows = 1 175nnoremap <leader>l :TagbarToggle<CR> 176func! CompileRunGcc() 177 exec "w" 178 if &filetype == 'c' 179 exec "!g++ % -o %<" 180 exec "! ./%<" 181 elseif &filetype == 'cpp' 182 exec "!g++ % -o %<" 183 exec "! ./%<" 184 elseif &filetype == 'java' 185 exec "!javac %" 186 exec "!java %<" 187 elseif &filetype == 'sh' 188 :!./% 189 elseif &filetype == 'py' 190 exec "!python %" 191 exec "!python %<" 192 endif 193endfunc 194"C,C++的调试 195"map <F8> :call Rungdb()<CR> 196func! Rungdb() 197 exec "w" 198 exec "!g++ % -g -o %<" 199 exec "!gdb ./%<" 200endfunc 201 202 203 204"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 205""实用设置 206""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 207" 设置当文件被改动时自动载入 208set autoread 209" quickfix模式 210autocmd FileType c,cpp map <buffer> <leader><space> :w<cr>:make<cr> 211"代码补全 212set completeopt=preview,menu 213"允许插件 214filetype plugin on 215"共享剪贴板 216set clipboard+=unnamed 217"从不备份 218set nobackup 219"make 运行 220:set makeprg=g++\ -Wall\ \ % 221"自动保存 222set autowrite 223set ruler " 打开状态栏标尺 224set cursorline " 突出显示当前行 225set magic " 设置魔术 226set guioptions-=T " 隐藏工具栏 227set guioptions-=m " 隐藏菜单栏 228"set statusline=\ %<%F[%1*%M%*%n%R%H]%=\ %y\ %0(%{&fileformat}\ %{&encoding}\ %c:%l/%L%)\ 229" 设置在状态行显示的信息 230set foldcolumn=0 231set foldmethod=indent 232set foldlevel=3 233set foldenable " 开始折叠 234" 不要使用vi的键盘模式,而是vim自己的 235set nocompatible 236" 语法高亮 237set syntax=on 238" 去掉输入错误的提示声音 239set noeb 240" 在处理未保存或只读文件的时候,弹出确认 241set confirm 242" 自动缩进 243set autoindent 244set clipboard+=unnamed 245set cindent 246" Tab键的宽度 247set tabstop=8 248" 统一缩进为8 249set softtabstop=4 250set shiftwidth=4 251" 不要用空格代替制表符 252set noexpandtab 253" 在行和段开始处使用制表符 254set smarttab 255" 显示行号 256set number 257" 历史记录数 258set history=1000 259"禁止生成临时文件 260set nobackup 261set noswapfile 262"搜索忽略大小写 263set ignorecase 264"搜索逐字符高亮 265set hlsearch 266set incsearch 267"行内替换 268set gdefault 269"编码设置 270set enc=utf-8 271set fencs=utf-8,ucs-bom,shift-jis,gb18030,gbk,gb2312,cp936 272"语言设置 273set langmenu=zh_CN.UTF-8 274set helplang=cn 275" 我的状态行显示的内容(包括文件类型和解码) 276"set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [POS=%l,%v][%p%%]\ %{strftime(\"%d/%m/%y\ -\ %H:%M\")} 277"set statusline=[%F]%y%r%m%*%=[Line:%l/%L,Column:%c][%p%%] 278" 总是显示状态行 279set laststatus=2 280" 命令行(在状态行下)的高度,默认为1,这里是2 281set cmdheight=2 282" 侦测文件类型 283filetype on 284" 载入文件类型插件 285filetype plugin on 286" 为特定文件类型载入相关缩进文件 287filetype indent on 288" 保存全局变量 289set viminfo+=! 290" 带有如下符号的单词不要被换行分割 291set iskeyword+=_,$,@,%,#,- 292" 字符间插入的像素行数目 293set linespace=0 294" 增强模式中的命令行自动完成操作 295set wildmenu 296" 使回格键(backspace)正常处理indent, eol, start等 297set backspace=2 298" 允许backspace和光标键跨越行边界 299set whichwrap+=<,>,h,l 300" 可以在buffer的任何地方使用鼠标(类似office中在工作区双击鼠标定位) 301set mouse=a 302set selection=exclusive 303set selectmode=mouse,key 304" 通过使用: commands命令,告诉我们文件的哪一行被改变过 305set report=0 306" 在被分割的窗口间显示空白,便于阅读 307set fillchars=vert:\ ,stl:\ ,stlnc:\ 308" 高亮显示匹配的括号 309set showmatch 310" 匹配括号高亮的时间(单位是十分之一秒) 311set matchtime=1 312" 光标移动到buffer的顶部和底部时保持3行距离 313set scrolloff=3 314" 为C程序提供自动缩进 315set smartindent 316" 高亮显示普通txt文件(需要txt.vim脚本) 317set cursorline 318hi CursorLine cterm=bold ctermbg=blue ctermfg=yellow 319au BufRead,BufNewFile * setfiletype txt 320"自动补全 321":inoremap ( ()<ESC>i 322":inoremap ) <c-r>=ClosePair(')')<CR> 323:inoremap { {<CR>}<ESC>O 324:inoremap } <c-r>=ClosePair('}')<CR> 325":inoremap [ []<ESC>i 326":inoremap ] <c-r>=ClosePair(']')<CR> 327":inoremap " ""<ESC>i 328":inoremap ' ''<ESC>i 329function! ClosePair(char) 330 if getline('.')[col('.') - 1] == a:char 331 return "\<Right>" 332 else 333 return a:char 334 endif 335endfunction 336filetype plugin indent on 337"打开文件类型检测, 加了这句才可以用智能补全 338set completeopt=longest,menu 339""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 340 341 342 343 344 345 346"NERDtee设定 347let NERDChristmasTree=1 348let NERDTreeAutoCenter=1 349let NERDTreeBookmarksFile=$VIM.'\Data\NerdBookmarks.txt' 350let NERDTreeMouseMode=2 351let NERDTreeShowBookmarks=1 352let NERDTreeShowFiles=1 353let NERDTreeShowHidden=1 354let NERDTreeShowLineNumbers=1 355let NERDTreeWinPos='left' 356let NERDTreeWinSize=31 357nnoremap f :NERDTreeToggle 358map <F7> :NERDTree<CR> 359 360"""""""""""""""""Taglist设置""""""""""""""""" 361""let Tlist_Auto_Open = 1 362let Tlist_Ctags_Cmd = '/usr/bin/ctags' 363let Tlist_Show_One_File = 1 364let Tlist_Exit_OnlyWindow = 1 365 366 367 368"""""""""""""""""vundle设置""""""""""""""""" 369set nocompatible 370"filetype off 371set rtp+=~/.vim/bundle/vundle/ 372call vundle#rc() 373Bundle 'gmarik/vundle' 374" vim-scripts repos 375Bundle 'bash-support.vim' 376Bundle 'perl-support.vim' 377Bundle 'majutsushi/tagbar' 378Bundle 'ZoomWin' 379Bundle "scrooloose/syntastic" 380" set the runtime path to include Vundle and initialize 381set rtp+=~/.vim/bundle/vundle/ 382call vundle#rc() 383" alternatively, pass a path where Vundle should install plugins 384"let path = '~/some/path/here' 385"call vundle#rc(path) 386 387" let Vundle manage Vundle, required 388Plugin 'gmarik/vundle' 389Bundle "scrooloose/syntastic" 390filetype plugin indent on " required 391Bundle 'Valloric/YouCompleteMe' 392 393 394 395"""""""""""""""""Tagbar设置""""""""""""""""" 396let g:tagbar_autofocus = 1 397let g:tagbar_sort = 0 398let g:tagbar_compact = 1 399let g:tagbar_indent = 1 400let g:tagbar_autoshowtag = 1 401 402 403 404"""""""""""""""""youcompleteme设置""""""""""""""""" 405 406 407"let g:ycm_autoclose_preview_window_after_completion=1 408"nnoremap <leader>g :YcmCompleter GoToDefinitionElseDeclaration<CR> 409 410" YouCompleteMe 功能 411" 补全功能在注释中同样有效 412"let g:ycm_global_ycm_extra_conf = '~/.vim/bundle/YouCompleteMe/cpp/ycm/.ycm_extra_conf.py' 413"let g:ycm_complete_in_comments=1 414" 允许 vim 加载 .ycm_extra_conf.py 文件,不再提示 415"let g:ycm_confirm_extra_conf=0 416 417let g:ycm_error_symbol = '>>' 418let g:ycm_warning_symbol = '>' 419"nnoremap <leader>gl :YcmCompleter GoToDeclaration<CR> 420"nnoremap <leader>gf :YcmCompleter GoToDefinition<CR> 421"nnoremap <leader>gg :YcmCompleter GoToDefinitionElseDeclaration<CR> 422"nmap <F4> :YcmDiags<CR> 423 424 425 426 427"""""""""""""""""youcompleteme设置 by wyz""""""""""""""""" 428let g:cpp_class_scope_highlight=1 429let g:cpp_experimental_template_highlight=1 430let g:ycm_show_diagnostics_ui=0 431let g:ycm_enable_diagnostic_signs=0 432let g:ycm_enable_diagnostic_highlighting = 0 433let g:ycm_echo_current_diagnostic = 0 434let g:ycm_collect_identifiers_from_tags_files = 1 435let g:ycm_key_invoke_completion = '<C-Q>' 436let g:ycm_seed_identifiers_with_syntax = 1 437let g:ycm_global_ycm_extra_conf = '~/.ycm_extra_conf.py' 438let g:ycm_collect_identifiers_from_tags_files = 1 439let g:ycm_confirm_extra_conf = 0 440let g:ycm_autoclose_preview_window_after_completion = 1 441let g:ycm_autoclose_preview_window_after_insertion = 1 442 443 444"""""""""""""""""php是最好的语言23333"""""""""""""""" 445"只有在是PHP文件时,才启用PHP补全 446au FileType php call AddPHPFuncList() 447function AddPHPFuncList() 448 set dictionary-=/home/feiyan/tools/vim/funclist.txt dictionary+=/home/feiyan/tools/vim/funclist.txt 449 set complete-=k complete+=k 450endfunction 451 452"根据文件类型设置缩进格式 453 454au FileType html,python,vim,javascript setl shiftwidth=2 455au FileType html,python,vim,javascript setl tabstop=2 456au FileType java,php setl shiftwidth=4 457au FileType java,php setl tabstop=4 458 459set ai "自动对齐 460 461set foldlevel=100 " 禁止自动折叠 462 463filetype plugin on 464autocmd FileType python set omnifunc=pythoncomplete#Complete 465 466let g:pydiction_location='~/.vim/tools/pydiction/complete-dict'

codeforces # 317 div 2 B. Order Book(模拟)

·991 words·2 mins
B. Order Book time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output In this task you need to process a set of stock exchange orders and use them to create order book. An order is an instruction of some participant to buy or sell stocks on stock exchange. The order number i has price p__i, direction d__i – buy or sell, and integer q__i. This means that the participant is ready to buy or sell q__i stocks at price p__i for one stock. A value q__i is also known as a volume of an order.

codeforces #317 div2 A. Arrays (水)

·206 words·1 min
应该3分钟过的题。。。 结果花了8分钟。。。ssssad 代码实现 1/************************************************************************* 2 > File Name: code/cf/#317/A.cpp 3 > Author: 111qqz 4 > Email: rkz2013@126.com 5 > Created Time: 2015年08月23日 星期日 00时29分47秒 6 ************************************************************************/ 7 8#include<iostream> 9#include<iomanip> 10#include<cstdio> 11#include<algorithm> 12#include<cmath> 13#include<cstring> 14#include<string> 15#include<map> 16#include<set> 17#include<queue> 18#include<vector> 19#include<stack> 20#include<cctype> 21#define y1 hust111qqz 22#define yn hez111qqz 23#define j1 cute111qqz 24#define ms(a,x) memset(a,x,sizeof(a)) 25#define lr dying111qqz 26using namespace std; 27#define For(i, n) for (int i=0;i<int(n);++i) 28typedef long long LL; 29typedef double DB; 30const int inf = 0x3f3f3f3f; 31const int N=1E5+7; 32int na,nb,k,m; 33int a[N],b[N]; 34int main() 35{ 36 #ifndef ONLINE_JUDGE 37 freopen("in.txt","r",stdin); 38 #endif 39 cin>>na>>nb; 40 cin>>k>>m; 41 for ( int i = 1 ; i <= na ; i++){ 42 scanf("%d",&a[i]); 43 } 44 for ( int i = 1 ; i<= nb ; i++){ 45 scanf("%d",&b[i]); 46 } 47 if (a[k]<b[nb-m+1]){ 48 puts("YES"); 49 } 50 else 51 { 52 puts("NO"); 53 } 54 55 56 #ifndef ONLINE_JUDGE 57 fclose(stdin); 58 #endif 59 return 0; 60}

bc #52 div 2 A ||hdoj5417 Victor and Machine (模拟)

·262 words·1 min
傻逼模拟题 我做了半小时…. sssssad 代码实现 1/************************************************************************* 2 > File Name: code/bc/#52/1001.cpp 3 > Author: 111qqz 4 > Email: rkz2013@126.com 5 > Created Time: 2015年08月22日 星期六 18时51分44秒 6 ************************************************************************/ 7#include<iostream> 8#include<iomanip> 9#include<cstdio> 10#include<algorithm> 11#include<cmath> 12#include<cstring> 13#include<string> 14#include<map> 15#include<set> 16#include<queue> 17#include<vector> 18#include<stack> 19#include<cctype> 20#define y1 hust111qqz 21#define yn hez111qqz 22#define j1 cute111qqz 23#define ms(a,x) memset(a,x,sizeof(a)) 24#define lr dying111qqz 25using namespace std; 26#define For(i, n) for (int i=0;i<int(n);++i) 27typedef long long LL; 28typedef double DB; 29const int inf = 0x3f3f3f3f; 30const int N=1E6+7; 31int main() 32{ 33 #ifndef ONLINE_JUDGE 34 freopen("in.txt","r",stdin); 35 #endif 36 int x,y,w,n; 37 while (scanf("%d%d%d%d",&x,&y,&w,&n)!=EOF){ 38 int num = 1; 39 int cnt; 40 int q; 41 bool on = true; 42 bool flag = false; 43 int t = 0; 44 while (t<N&&!flag){ 45 if (num==n) { 46 cout<<t<<endl; 47 flag = true; 48 break; 49 } 50 cnt = t+x; 51 q = 0; 52 while (t<cnt){ 53 q++; 54 t++; 55 if (q%w==0){ 56// cout<<"aaat:"<<t<<endl; 57 num++; 58 } 59 if (num == n){ 60 cout<<t<<endl; 61 flag = true; 62 break; 63 } 64 } 65 on = false; 66 t = t + y; 67 on = true; 68 num++; 69 if (num==n){ 70 cout<<t<<endl; 71 flag = true; 72 } 73 } 74 } 75 #ifndef ONLINE_JUDGE 76 fclose(stdin); 77 #endif 78 return 0; 79}

acm输出输出技巧(提交oj不需要改变)

·77 words·1 min
1int main() 2 { 3 int a,b; 4 #ifndef ONLINE_JUDGE 5 freopen("in.txt","r",stdin); 6 #endif 7 // int a,b; 8 while (scanf("%d%d",&a,&b)!=EOF){ 9 cout<<a+b<<endl; 10 } 11 #ifndef ONLINE_JUDGE 12 fclose(stdin); 13 #endif 14 return 0; 15 } 这样写比较爽 交OJ什么都不用改 ,妈妈再也不用担心我累死在输入样例&调试上了。。。

关于ACM的输入输出(一)

·6442 words·13 mins
关于ACM的输入输出(一) 写给第一次参加现场赛的同学们 一般来说ACM的现场赛会规定输入输出 或者是文件输入标准输出 也可能是文件输入文件输出 如果没有规定的话那么一般就是标准的输入输出了

poj 2909 Goldbach's Conjecture (哥德巴赫猜想)

·244 words·1 min
水题 写一遍的目的是。。。复习一下快速筛的写法 喵呜 代码实现 1/************************************************************************* 2 > File Name: code/poj/2909.cpp 3 > Author: 111qqz 4 > Email: rkz2013@126.com 5 > Created Time: 2015年08月22日 星期六 14时25分34秒 6 ************************************************************************/ 7 8#include<iostream> 9#include<iomanip> 10#include<cstdio> 11#include<algorithm> 12#include<cmath> 13#include<cstring> 14#include<string> 15#include<map> 16#include<set> 17#include<queue> 18#include<vector> 19#include<stack> 20#define y0 abc111qqz 21#define y1 hust111qqz 22#define yn hez111qqz 23#define j1 cute111qqz 24#define tm crazy111qqz 25#define lr dying111qqz 26using namespace std; 27#define REP(i, n) for (int i=0;i<int(n);++i) 28typedef long long LL; 29typedef unsigned long long ULL; 30const int inf = 0x3f3f3f3f; 31const int N=1<<16; 32bool not_prime[N]; 33int prime[N]; 34int prime_num; 35int n; 36 37void init(){ 38 not_prime[0] = true; 39 not_prime[1] = true; 40 for ( int i =2 ; i < N ; i++){ 41 if (!not_prime[i]){ 42 prime[++prime_num] = i; 43 } 44 for ( int j = 1 ; j <= prime_num&&i*prime[j]<N ; j++){ 45 not_prime[i*prime[j]] = true; 46 if (i%prime[j]==0) break; 47 } 48 } 49} 50int main() 51{ 52 init(); 53 int n ; 54 while (scanf("%d",&n)&&n){ 55 int ans = 0 ; 56 for ( int i = 2 ; i <= n /2 ; i++){ 57 if (!not_prime[i]&&!not_prime[n-i]){ 58 ans++; 59 } 60 } 61 printf("%d\n",ans); 62 } 63 64 return 0; 65}

poj 1305 (毕达哥拉斯三元组,构造勾股数)

·1017 words·3 mins
题意是说,能构造多少本元勾股数和勾股数,要求构造的数<=n 所谓本元勾股数,就是三个勾股数没有公因数,两两互质。 由本元勾股数扩大k倍,就可以得到其他勾股数。 而构造本元勾股数的方法如下:

poj 3370 Halloween treats (剩余类,抽屉原理)

·837 words·2 mins
昨天那道签到的数学题没搞出来不开心. 是时候刷一波数学了 这题题意是说,从n个数中任选m个,使得m个的和为c的倍数. 如果有解,输出选的数的下标,否则输出无解字符串. 抽屉原理的原始描述是,如果有n+1个物品,有n个抽屉,那么至少有一个抽屉有2个物品.

HUST team contest #E A Mountain Road||poj 3846 (dp)

·840 words·2 mins
比赛的时候以为是贪心… 想了好久. 不过最后没敢写,因为没办法证明正确性,只是直觉== 最后剩下的时间给队友改另一道题了.. 果然明智… 蠢的人的直觉真心不靠谱..

0x3f3f3f3f...编程中无穷大常量的设置技巧

·1368 words·3 mins
如果问题中各数据的范围明确,那么无穷大的设定不是问题,在不明确的情况下,很多程序员都取0x7fffffff作为无穷大,因为这是32-bit int的最大值。如果这个无穷大只用于一般的比较(比如求最小值时min变量的初值),那么0x7fffffff确实是一个完美的选择,但是在更多的情况下,0x7fffffff并不是一个好的选择。

筛法求素数(转载)

·1467 words·3 mins
TAG 素数 数论 素数总是一个比较常涉及到的内容,掌握求素数的方法是一项基本功。 基本原则就是题目如果只需要判断少量数字是否为素数,直接枚举因子 2 到 N^(0.5),看看能否整除 N。

codeforces 560 D. Equivalent Strings(分治)

·417 words·1 min
问两个长度相同的字符串是否等价. 相等的条件是,两个字符串相等,或者两个偶数长度(因为要分成长度相同的两段,所以一定是偶数长度才可分)字符串平均分成两部分,每部分对应相等(不考虑顺序)

codeforces 560 B. Gerald is into Art (模拟)

·135 words·1 min
代码实现 1/************************************************************************* 2 > File Name: code/cf/#313/B.cpp 3 > Author: 111qqz 4 > Email: rkz2013@126.com 5 > Created Time: Wed 22 Jul 2015 09:52:54 PM CST 6 ************************************************************************/ 7 8#include<iostream> 9#include<iomanip> 10#include<cstdio> 11#include<algorithm> 12#include<cmath> 13#include<cstring> 14#include<string> 15#include<map> 16#include<set> 17#include<queue> 18#include<vector> 19#include<stack> 20#define y0 abc111qqz 21#define y1 hust111qqz 22#define yn hez111qqz 23#define j1 cute111qqz 24#define tm crazy111qqz 25#define lr dying111qqz 26using namespace std; 27#define REP(i, n) for (int i=0;i<int(n);++i) 28typedef long long LL; 29typedef unsigned long long ULL; 30 31 int a1,b1,a2,b2,a3,b3; 32bool judge (int x2,int y2,int x3,int y3) 33{ 34 if (x2<=a1&&x3<=a1&&y2+y3<=b1) 35 return true; 36 if (y2<=b1&&y3<=b1&&x2+x3<=a1) 37 return true; 38 return false; 39} 40int main() 41{ 42 cin>>a1>>b1>>a2>>b2>>a3>>b3; 43 if (judge(a2,b2,a3,b3)||judge(b2,a2,a3,b3)||judge(b2,a2,b3,a3)||judge(a2,b2,b3,a3)) 44 { 45 puts("YES"); 46 } 47 else 48 { 49 puts("NO"); 50 } 51 52 return 0; 53}