Time of Update: 2018-12-05
#include <stdio.h>#include <string.h>int main (void){ int n,i,j,k,l,s; char a[1000][15]; while(scanf("%d",&n)!=EOF) { l=0; if(!n) break; for(i=0;i<n;i++) scanf("%s",&a[i]);
Time of Update: 2018-12-05
這個並查集比較新穎:首先用結構比較簡單;數組p每組表示四個方向是否連通,(上下左右)然後分別在水平和豎直方向上看是否連通,前提是水平(j和j+1上有右和左都為一); #include"stdio.h"#include"string.h"#include"stdlib.h"char str[1000][100];int map[1000][1000];int pre[10000];int find(int
Time of Update: 2018-12-05
#include <stdio.h>int main (void){ double n,m,k,s,a[1005],b[1005]; int i,j; while(scanf("%lf%lf",&n,&m)!=EOF) { if(n==-1||m==-1) break; s=0; for(i=0;i<m;i++)
Time of Update: 2018-12-05
最近在做醫學映像軟體。由於MFC太複雜了,我又不用C#和java,所以滾去了Qt4 陣營。我建立的是VS2008+Qt4工程,外掛程式是Qt-VS-add-in。做到後來,我探索資料量很大,所以換上了64位環境,原來的工程也得跟著換成64bit版本,但是我總不能再建立一個工程吧?我搜尋一些,答案是右鍵工程,點擊change project qt version,修改版本。但是我發現右鍵菜單沒有這個選項,於是鬱悶了後來發現要這樣做:點擊Covert project to Qmake
Time of Update: 2018-12-05
題意:采蘑菇的小姑娘,要采5座山的蘑菇,每座山採的蘑菇 大於等於0 小於等於2012。5座山採的蘑菇 需要將其中三座山的蘑菇 剪掉 並且必須是1024的倍數,若不是則全部將所有蘑菇減掉,若符合,剩餘兩座山的蘑菇要不斷地減去1024直到剩餘量小於等於1024為止。問最後剩餘蘑菇的最大值(1024)。(感覺小姑娘被壓迫的好慘啊,其實不然……)題解:枚舉+博弈。想法通過第一關 即三座山加起來是1024的倍數。然後後面的只要雜湊成1024就可以了。由於只有5座山,對其分類討論:已采蘑菇山的數量 <
Time of Update: 2018-12-05
這些代碼是轉載的,不過文字是我寫的。如果你使用的是C++類CPlus,並建立容器list<CPlus>或者vector<CPlus>,可以使用STL演算法迅速刪除冗餘資料。/*建立資料*/vector<CPlus> A(/*CPlus資料*/);/*首先必須排序*/sort(A.begin(), A.end());/*請注意這裡你必須在類CPlus中重載operate == 運算子*/A.erase(unique(A.begin(), A.end()), A.
Time of Update: 2018-12-05
前兩天開始玩並查集的,當時是不瞭解,不過到現在也只有這麼懂,找度娘問了好久,頂多就是告訴我寫兩個函數,我想應該有很多人和我先前一樣,想知道什麼但是表達不清楚,所以百度了好久都找不到答案,所以咯,我把自己怎麼弄並查集的和當時想知道的拿來分享~~首先我是想的並查集是不是和棧還有隊列一樣有容器,也就是說把那個標頭檔一加就可以定義一個從其變數,而且進棧和出棧的函數都是在標頭檔而不需要自己寫的,答案是否,要是那樣並查集還真就太容易用了總的來說並查集就是倆超重量級的函數Find和Union,當然我開始也想知
Time of Update: 2018-12-05
因為看到C++ Primer
Time of Update: 2018-12-05
以前在VS中用慣了C語言的fopen,fscanf_s和fprintf_s,現在為了做一個文字查詢和修改系統,開始使用輸入輸出資料流,也算是徹底走上了C++的道路。這裡我倒是遇到幾個問題ifstream& open_file(ifstream &in,const string &file)//const ifstream &in{in.close();in.clear();in.open(file.c_str());return
Time of Update: 2018-12-05
描述數列A滿足An = An-1 + An-2 + An-3, n >= 3 編寫程式,給定A0, A1 和 A2, 計算A99輸入輸入包含多行資料 每行資料包含3個整數A0, A1, A2 (0 <= A0, A1, A2 <= 100000000) 資料以EOF結束輸出對於輸入的每一行輸出A99的值範例輸入1 1
Time of Update: 2018-12-05
今天,屁王叫我做HDU1128,最後他的就78MS,我的是500+MS,靠,我寫的比他精簡,大小比他小,他的就比我快,於是經過討論,原來,cout是函數,每次都是調用,而printf就是光輸出,難怪他比我快,哎~~~~我不行咧我的:#include <iostream>using namespace std;int a[1000010]={0};int main (void){ int i,j,k; for(i=1,k=0;i<1000001;i++) {
Time of Update: 2018-12-05
#include<stdio.h>#include<string.h>int Max(int a,int b) { return a>b?a:b;}int dp[3][1<<21];int map[30][30];int s[1<<21];int main() { int i,j,k,n,num=0; for(i=0;i<(1<<21);i++) if(!(i&(i<<
Time of Update: 2018-12-05
為了完成POJ中的一題(spell checker),要寫一個最長公用子序列的程式,居然突然全給忘了,楞是沒有寫出來,深深的鄙視自己一下。這也是一道動態規劃的典型題。遞迴實現如下(POJ提交會逾時,但是確實可以實現):using namespace std;#define max( a ,b ) ((a)>(b)?(a):(b))//最長公用子序列int maxlen( char *a, char *b){ int len = 0; while( *a == *
Time of Update: 2018-12-05
/*有n件物品,旅客一共有m塊大洋。第一個問題,旅客最多可以買多少件物品?請注意,這裡是多少件,不是價值最大。所以這個非常好求,將所有的物品按照價值排序,先買便宜的,再買貴的。貪心的思想。這個地方有些細節需要處理,如果所有物品的價值總和比旅客的錢少,那麼就只有一個方案,旅客可以買走所有的物品。如果旅客的錢數連第一件物品都買不起,那麼就直接輸出”Sorry,you can't buy
Time of Update: 2018-12-05
#include<stdio.h>#include<string.h>char s1[300],s2[300],s[500];int len1,len2,len3,flag,used[300][300];void dfs(int a,int b,int c) { if(flag) return ; if(c==len3) { flag=1; return ; } if(used[a][b]) return ; used[a][b]=1; if(s1[a]=
Time of Update: 2018-12-05
思來想去,本人還是覺得,這個優先隊列啊,不學不行,怎麼說咧?雖說有時候我可以模仿它的功能,但是有的題目會坑的我大放血,況且多學會用一個小東東總不會傷身的撒,何況我是永舉不垂的,哦耶,嘿嘿
Time of Update: 2018-12-05
ubuntu 是當前最流行的linux發行版之一,使用ubuntu除了經常使用的Ctrl + C (複製) and Ctrl + V (粘帖),其實還有一些不常用但很有用的ubuntu快速鍵。如果你現在正搜羅更多的ubuntu 快速鍵,相信你可以在這裡找到一些新的。1、顯示案頭Ctrl + Alt + D快速鍵讓你很快地最小化所有視窗,看到案頭。當所有視窗都最小化後,你再按這個快速鍵就可以恢複視窗原來的狀態。2、前一個後一個工作區的切換如果你經常使用工作區,那你就可以用Ctrl + Alt
Time of Update: 2018-12-05
/*與1565的解法差不多*/#include<stdio.h>#include<string.h>int map[16][16];int dp[2][1<<16];int h[1<<16];int Max(int a,int b){ return a>b?a:b;}int main(){ int m,i,j,k,max; m=0; for(i=0;i<(1<<16);i++) if((i&(i<<1)
Time of Update: 2018-12-05
題意:小明和小紅參加一種新的取石子遊戲。遊戲開始時有 n
Time of Update: 2018-12-05
#include<stdio.h>#define N 200005int h,w,n;struct node { int x,y,max;}a[N*3];int mmax(int e,int f) { return e>f?e:f;}void creattree(int t,int x,int y) { a[t].x=x; a[t].y=y; a[t].max=w; if(x==y) return ; int