Time of Update: 2018-12-03
http://acm.hdu.edu.cn/showproblem.php?pid=32562009 寧波網賽題。。此次網賽題難度相當不一般啊。。 題意:給定500條線段,以浮點型輸入最多4為小數。。。問這些線段覆蓋的整數點有多少個。。。。資料保證在-10000<x, y<10000。。。 分析:需要判重,所以不能直接做。。。總可能點數達到4*10^8個,所以不可能全部標記。。。因為線段條數不多,範圍也很小,可以直接枚舉x的座標標記y座標被覆蓋的個數。。。但如果標記每次都初始化為0
Time of Update: 2018-12-03
A題我是for迴圈暴力作的,題解裡最牛逼的做法是O(1):O(1) solution - one may derive it from the previous approach: since x+c = d1 => 2*x + r1 - c1 = d1 => x = (d1+c1-r1)/2So, you find x, check that it is in [0..9], restore all other numbers as in the previous
Time of Update: 2018-12-03
http://acm.hdu.edu.cn/showproblem.php?pid=3474 題意:給你一個只包含C和J的項鏈(10^6),問從哪些位置切了之後從改位置往後到每個位置C的個數都不小於J的個數。。。兩個方向均可。。。求有多少個位置滿足。。 分析:記得這是去年多校的題。。那時候還不會。。先加倍,從前往後求和sum[i],其實就是要保證對i元素後面的n個元素滿足:min(sum[i+1...i+n])-sum[i]>=0所以轉化一下就是維護一個n的區間內的最小值而已。。。很水
Time of Update: 2018-12-03
http://icpc.njust.edu.cn/Problem/Show/1420?Title=Easy_task_題意:給一個字串,很多操作Q L R : output the length of the longest consecutive non-decreasing subsequenceC L R P : replace each letter from L to R by letter P('a'<=P<='z') 。分析:很明顯要用線段樹做,基本做法就如最長連續的0
Time of Update: 2018-12-03
http://acm.hdu.edu.cn/showproblem.php?pid=2222題意:給出n個串,然後給一篇文章,問這n個串有多少個在文章裡面出現過。。。trick:n個串可能有相同的,需按照不同串處理。分析:AC自動機模板題,自己按照演算法思想寫的,寫得鬱悶。。貼代碼。。 不知道怎麼要800+MS,別人的都基本上200+MS。。。 7月21號重新研究別人代碼,終於找到差距了。。減到了187MS。。。附代碼和改正說明:7.21代碼。。。#include<iostream>
Time of Update: 2018-12-03
http://acm.hdu.edu.cn/showproblem.php?pid=4000題意:對1--n的一個排列,求所有的i<j<k且a[i]<a[k]<a[j]的個數。。。 分析:比賽的時候總是想不出來怎麼做,老想著單純枚舉i或者j或者k來求得結果,不知道變通。。。實際上可以換個方向思考,對每個位置考慮後面有多少比他大的數,則這個小的後面跟兩個大的個數為x(x-1)/2,然後肯定要減去後面的所有組成的i<j<k且a[i]<a[j]<a[k
Time of Update: 2018-12-03
http://codeforces.com/contest/127/problem/Dpassword題意:輸入一個字串,求一個最長的子串,使得其既是原串的首碼,也是尾碼,也是一個非前尾碼的子串分析:要求一個串既是首碼,也是尾碼,則用kmp可以很容易解決,這個首碼一定是其尾碼所能匹配的所有首碼中的一個,找到其中一個最長的、而且也可以被後面另一個位置的匹配的首碼即可對kmp至今沒理解清楚啊。。代碼:#include<iostream>#include<stdio.h>#in
Time of Update: 2018-12-03
全部1A的,orz——————————。A題D很小,直接for(i,1,D) 。B題追擊問題。我的做法: while(1){ ... } 最開始 int front= T * vp. 那麼 vd * times == front + vp* times; 算出times 然後判斷是否有超過 dis,如果沒有,則front+ ( ( f + times + times ) * vp ).
Time of Update: 2018-12-03
#include <iostream>#include <cstring>#include <cstdio>using namespace std;const int N = 508;int G[N][N],link[N],used[N],n,m;bool path(int u){for(int i=0;i<m;i++)if(G[u][i] && !used[i]){used[i] = 1;if(link[i]==-1 ||
Time of Update: 2018-12-03
http://poj.org/problem?id=3294題意:給定100個字串,所有串的總字元數不超過100000,求最長的一個串保證這個串在>n/2的串中出現過。。如果有多個,按字典序輸出。。 分析:一直木有寫過尾碼數組+二分的題目。。總是控制不好。。和其他題目一樣,可以想到用不同的字元隔開將這些串串成一個串。。。求得height數組,然後就是二分最長的串的長度,求得這個最大長度。。對每個長度進行判斷時,掃描一遍height數組,看對每一個連續的>=temp_len的區間的
Time of Update: 2018-12-03
A題數組映射,讀入t, 則p[ t ]= i; for( i, 1, n ) cout<< p[i];B題十進位,三進位的轉換,+字串處理;處理進位轉換的時候,要求反串,額,下面是代碼。/*Feb 20, 2012 11:35:13 AMyimao B-Ternary Logic GNU C++Accepted 30ms 1400KB*/#include <cstdio>#include <cstring>#include
Time of Update: 2018-12-03
http://acm.hdu.edu.cn/showproblem.php?pid=3887來源:2011 Multi-University Training Contest 5 - Host by
Time of Update: 2018-12-03
A題for迴圈判斷從第2個字元開始是否全部是大寫字母即可,注意如果字串只有1個字元的情況;B題-10到10,只需要每個數都加上10,那麼開一個20大小的數組,記錄每個數的出現次數 f [ ],然後 sum= sigma ( f [ i ] * f [ 20-i ] ) | i<10 ,另外 f [ 10 ] 表示0的個數,即C( f[10], 2 );C題注意不能多算,我是枚舉男孩的數目 , i=4開始枚舉,那麼女孩數目就是 t-i,然後用預先處理的組合數直接帶入計算;注意很多邊界情況,
Time of Update: 2018-12-03
A題if all digits are lucky and sum of the digits of the first half equals to the sum of the digits of the second half, then answer is YES, in other case - NO. All this can be checked by single loop through all the digitsB題 in worst case, the answer
Time of Update: 2018-12-03
要準備面試了,最近才開始看些往年的筆試,面試題,今晚就寫一篇最基礎的二叉尋找樹的遍曆總結吧。先序遍曆: 先根,再左子樹,最後右子樹;中序遍曆: 先左子樹,再根,最後右子樹;後序遍曆: 先左子樹, 再右子樹,最後根;以上的每種遍曆方式都對應有兩種寫法:遞迴與非遞迴;僅拿先序遍曆的非遞迴方式來說(其餘兩種遍曆類似)兩者共同點:
Time of Update: 2018-12-03
北郵2011-7-16邀請賽G題,(bupt 201)http://acm.bupt.edu.cn/onlinejudge/newoj/showProblem/show_problem.php?problem_id=201 題意:有一個數組a[],有一個對應數組c[],c[]中存0或1,定義l(i,j)==min(a| i…j);求ans為其中所有l(i,j)<k的對數。而如果c[i]和c[j]不相等的話l(i,j)為無窮大。兩種操作:1 輸出ans 0 i 反向c[
Time of Update: 2018-12-03
學了URB,試著去分析了一下USB滑鼠驅動原始碼,更好去理解URB處理流程。/* * $Id: usbmouse.c,v 1.15 2001/12/27 10:37:41 vojtech Exp $ * * Copyright (c) 1999-2001 Vojtech Pavlik * * USB HIDBP Mouse support *//* * This program is free software; you can redistribute it and/or modify *
Time of Update: 2018-12-03
http://acm.hdu.edu.cn/showproblem.php?pid=3901多校2011
Time of Update: 2018-12-03
http://poj.org/problem?id=2104題意:求任意區間第k大數 分析:劃分樹主要參考了大牛部落格http://www.notonlysuccess.com/?p=142http://blog.sina.com.cn/s/blog_5f5353cc0100ki2e.html劃分樹相容了快排和歸併的特點。。。採用劃分的思想逐漸往下劃,最後葉子節點的元素就是排好序的元素。。。其實可以理解成穩定的快排。。。和歸併樹一樣,記錄每一層的結果。。。並記錄toleft[]。。。尋找的過程
Time of Update: 2018-12-03
又ak了一場 div2。。。A題給定一個CCPPCCPPCCCCCPPPP這樣的只有C,P的串,從左至右,每次最多取5個字元,每次取的字元必須相同,問最少要取多少次。My Code比較短:每次迴圈定個初始位置,以該位置的下一個位置開始for迴圈4次.int main(){ int ans,i,n; char ch[110]; while(cin>>ch){ n= strlen(ch); ans=0; int st=0;