tozangezan's diary

勝手にソースコードをコピペして利用しないでください。

PKU

PKU1986 Distance Queries

PKU

やるだけだけど、グラフの実装をしたということで。過去にひどいソースを書いていた頃由は綺麗なソースになりました。 #include<stdio.h> #include<algorithm> #include<vector> using namespace std; int segtree[262144]; vector<pair<int,int> > g[40000]; int num[131072]; int cost[40000]; int us</pair<int,int></vector></algorithm></stdio.h>…

PKU1114: Chemical Reactions

PKU

やるだけ。 ソースコードは汚いのでNG。 import java.util.*; class Main{ static int t[]; static int T[]; static int mult; static String now; static boolean isnum(char c){ if(c>='0'&&c<='9')return true; return false; } static boolean islower(c…

PKU2019: Cornfields

PKU

なんか頭のいい解法があるらしいのですが(多分範囲のサイズが決まってることを利用して累積和っぽいことをする)、見た瞬間に二次元のSegmentTreeだ!とか言って二次元Segtree書いていました。二次元Segtreeのソースとしてあげてみます。 やっていることは、…

PKU1115: Statistical Trouble

PKU

超大作。時間もメモリも厳しいので、本当にぱない。 やることは入力から表を沢山生成するだけ。 とりあえず6KB書いてサンプルあわせてみたらTLEって出て、原因をがんばって探すもTLEで、ようやく出力がネックになっていることに気がついて、そこで出力をStri…

PKU詰め合わせ 11/20

PKU

今日は問題解きまくった。気がついたらRecent Ranking1位になってた。 クソ問コンテストが開かれていたので早速全完してきた。時間ないかもしれませんが解説しておきます。 1836:Alignment 最長増加部分列を左右でやる。その後、どこで分けるかで足し合わせ…

PKU1915 Knight Moves

PKU

300*300までの正方形のチェス盤的なものにナイトを置く。 何回でゴールまでたどり着けるか小さいしBFSでいける。 というか今日BFSばっかりやってる気がする。 DPやらなきゃまずいんじゃないの? #include<stdio.h> #include<queue> #include<algorithm> #include<math.h> using namespace std; i</math.h></algorithm></queue></stdio.h>…

PKU1036 Gangsters

PKU

久しぶりにPKUを解いてみたwww1036:Gangsters dp[i][j]:時刻iで開き方jのときの求めるものの和の最大値 で通らない。 正攻法はdp[i%2][j]を使う。 間違った方法はdpの配列をintではなくshort intでとる (3000000の配列でメモリ制限10MB、なおかつ答えは高…

PKU2823: Sliding Window

PKU

久しぶりにPKUを解いてみた。 Segment Treeやるだけ。遅いSegTree書いてる。まあ初めてなので良いとします。いくらやってもTLEなので-O2かけたりいろいろやってみたところ、G++で送るのをC++で送ることで通ったようです。ぎりぎりだけど。ソース #include<stdio.h> #i</stdio.h>…

PKU2402:Palindrome Numbers

PKU

やるだけ。でもなかなか面倒。1,2,3,4,5...,88,99 → 9*2個 101,111,121,131...,9779,9889,9999 → 9*10 *2個 10001,10101,10201,10301,10401...997799,998899,999999 → 9*(10^2) *2個 ...こんな感じになるので、桁数でループをまわせば何桁の数か出ますし、そ…

PKU2810:Take Your Vitamins

PKU

やるだけ。ArrayList使う理由もそんなにない。 import java.util.*; class Main{ public static void main(String args){ Scanner s=new Scanner(System.in); ArrayListle=new ArrayList(0); while(true){ String a=s.nextLine(); String b=a.split(" ",4); …