自分用のパソコンが欲しい。未だに共用のノートPCしかないので。
やっぱりMacBook Airが欲しい。13インチ。
誰か買って……
2011年11月30日水曜日
Emacsをインストールしたことを一応書いておく事に
Linuxのエディタとして有名らしいので、コーディングの練習にバリエーションを持たせる意味でインストールしてみました。
参考:http://www.randynetwork.com/blog/265 http://blog.mizoshiri.com/archives/988
yumのGUI使ってサッと検索してインストールすればいいはずだが、端末使いたい思いもあるので敢えてそっちで。
参考のサイトでyumだとバージョンが21とかになるらしいので(試して無いけど)、わざわざソースコードからインストール。
# wget http://ftp.gnu.org/pub/gnu/emacs/emacs-23.3b.tar.gz
# tar zxvf emacs-23.3b.tar.gz
# cd ./emacs-23.3
# ./configure --without-x
# make
# make install
とまでやって、起動してみると"
# yum install libncurses5-dev
の後に再度インストールしたら起動しました、と。
正直こんなこと書いて誰かの役に立つとは微塵も思わない。
参考:http://www.randynetwork.com/blog/265 http://blog.mizoshiri.com/archives/988
yumのGUI使ってサッと検索してインストールすればいいはずだが、端末使いたい思いもあるので敢えてそっちで。
参考のサイトでyumだとバージョンが21とかになるらしいので(試して無いけど)、わざわざソースコードからインストール。
# wget http://ftp.gnu.org/pub/gnu/emacs/emacs-23.3b.tar.gz
# tar zxvf emacs-23.3b.tar.gz
# cd ./emacs-23.3
# ./configure --without-x
# make
# make install
とまでやって、起動してみると"
Cannot open termcap database file"だの言われたので、そのままググってみると、
"libncurses5-dev"なんてのをインストールしないといけないらしいので、# yum install libncurses5-dev
の後に再度インストールしたら起動しました、と。
正直こんなこと書いて誰かの役に立つとは微塵も思わない。
2011年11月29日火曜日
JOI予選、去年の問題
なぜか入力3が出来るのに入力4,5が出来ない。あと例題2も出来ない。
int solve(int,int);
int a[512],amax;
long int memo[513][21];
long int ans = 0;
int main(void){
int i,j;
for(i = 0; i < 513; i++){
for(j = 0; j < 21; j++){
memo[i][j] = 0;
}
}
if(datascan()){
exit(EXIT_FAILURE);
}
solve(1,a[0]);
printf("%d\n",ans);
return 0;
}
int solve(int i,int sum){
long int ret = 0;
long int patn;
if(i == amax - 1){
if(a[amax - 1] == sum){
ans++;
return 1;
}else{
return 0;
}
}else if(memo[i][sum] != 0){
ans = ans + memo[i][sum];
return memo[i][sum];
}else{
if(sum + a[i] <= 20){
patn = solve(i + 1,sum + a[i]);
if(patn != 0){
memo[i][sum] += patn;
ret += patn;
}
}
if(sum - a[i] >= 0){
patn = solve(i + 1,sum - a[i]);
if(patn != 0){
memo[i][sum] += patn;
ret += patn;
}
}
}
return (ret);
}
bool datascan(void){
int i = 0;
char fbuf[513],*p;
FILE *fp;
if((fp = fopen("2011-yo-t4-in5.txt","r")) == NULL){
printf("file open error\n");
return true;
}
fgets(fbuf,100,fp);
sscanf(fbuf,"%d",&amax);
fgets(fbuf,512,fp);
printf("%s\n",fbuf);
p = fbuf;
do{
sscanf(p,"%d",&a[i]);
i++;
p++;
}while((p = strchr(p,' ')) != NULL);
for(i = 0; i < amax; i++){
printf("%d ",a[i]);
}
printf("\n");
fclose(fp);
return false;
}
一体何がダメなのか…
まぁ一応ここで12点取れてれば大丈夫な気はするけど。
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
bool datascan();int solve(int,int);
int a[512],amax;
long int memo[513][21];
long int ans = 0;
int main(void){
int i,j;
for(i = 0; i < 513; i++){
for(j = 0; j < 21; j++){
memo[i][j] = 0;
}
}
if(datascan()){
exit(EXIT_FAILURE);
}
solve(1,a[0]);
printf("%d\n",ans);
return 0;
}
int solve(int i,int sum){
long int ret = 0;
long int patn;
if(i == amax - 1){
if(a[amax - 1] == sum){
ans++;
return 1;
}else{
return 0;
}
}else if(memo[i][sum] != 0){
ans = ans + memo[i][sum];
return memo[i][sum];
}else{
if(sum + a[i] <= 20){
patn = solve(i + 1,sum + a[i]);
if(patn != 0){
memo[i][sum] += patn;
ret += patn;
}
}
if(sum - a[i] >= 0){
patn = solve(i + 1,sum - a[i]);
if(patn != 0){
memo[i][sum] += patn;
ret += patn;
}
}
}
return (ret);
}
bool datascan(void){
int i = 0;
char fbuf[513],*p;
FILE *fp;
if((fp = fopen("2011-yo-t4-in5.txt","r")) == NULL){
printf("file open error\n");
return true;
}
fgets(fbuf,100,fp);
sscanf(fbuf,"%d",&amax);
fgets(fbuf,512,fp);
printf("%s\n",fbuf);
p = fbuf;
do{
sscanf(p,"%d",&a[i]);
i++;
p++;
}while((p = strchr(p,' ')) != NULL);
for(i = 0; i < amax; i++){
printf("%d ",a[i]);
}
printf("\n");
fclose(fp);
return false;
}
一体何がダメなのか…
まぁ一応ここで12点取れてれば大丈夫な気はするけど。
2011年11月27日日曜日
入力が出来るようになった
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main(void){int a[512],i = 0,n;
char fbuf[256],*p;
FILE *fp;
if((fp = fopen("data","r")) == NULL){ //ファイルのオープン
printf("file open error\n");
exit(EXIT_FAILURE);
}
fgets(fbuf,100,fp); //ファイルから1行読み取ってfbufへ
printf("%s\n",fbuf); //fbufの内容を出力
p = fbuf; //ポインタpにfbufのアドレスを代入
//数字の読み込み
do{
sscanf(p,"%d",&a[i]); //ポインタpで指定された文字列から整数を取得
i++;
p++; //ポインタを1つ増やす
}while((p = strchr(p,' ')) != NULL); //ポインタpで指定された文字列からスペースを探し、見つかればループを継続
a[i] = -1; //配列の最後を-1に設定
i = 0;
//配列の出力
while(a[i] >= 0){ //a[i] >= 0ならa[i]を出力
printf("%d ",a[i]);
i++;
}
printf("\n");
fclose(fp); //ファイルのクローズ
return 0;
}
もう情報オリンピックまで1ヶ月切ったというのに今更ファイルの入力が出来るようになった…
コメント文をこんなに書くのは初めてだからどうすればいいやら。
もっといいやり方があると思うけどな!
2011年11月1日火曜日
登録:
投稿 (Atom)