Time of Update: 2018-12-03
http://codeforces.com/problemset/problem/315/A這兩天做了兩場CF的題(div2),沒事補個題解吧。A題:題目很水,但是有些噁心的trick,比如有的罐子可以開啟沒有出現的編號的罐子,還有自己不能開啟自己,題目沒看清,WA了一堆,最後直接O(n^2)暴力水過。。。#include <iostream>#include <stdio.h>#include <algorithm>#include
Time of Update: 2018-12-03
http://codeforces.com/problemset/problem/295/E題目大意:在一條水平的直線上有n個點,編號1~n,告訴你每個點的橫座標xi,然後有兩個操作:1:將編號為i的點平移d各單位,d為正往右,否則往左。2:求處於區間[l,r]之間每一對點的距離之和,即求 。思路:還是比較裸的線段樹問題,我們線上段樹中維護以下值:num:該區間有多少個點。sum:該區間點的橫座標之和。ans
Time of Update: 2018-12-03
最近學習了一下劃分樹,下面總結一下。我們在求區間最值的時候,一般可以用線段樹解決,但是如果要求區間第k小或者第k大值的話線段樹就有點力不從心了,這是我們可以用劃分樹來解決。劃分樹利用了快速排序的思想,首先是建樹,我們設當前區間的中位元為mid,(為了能快速找到區間的中位元,我們一般先對原序列做一次排序)則我們將區間中比mid小的放入左子樹,將區間中比mid大數的放入右子樹中,和mid相等的要討論一下,有些需要放到左子樹中,其他的放到右子樹中,注意我們將數字放入子樹的時候其相對順序是不變的。這樣我
Time of Update: 2018-12-03
題目串連分析:這題是道典型的最短路程問題,用dijkstra演算法就行了。題目中說過它是雙向邊,所以輸入的時候要選最小的邊。注意這裡就是模板題了。代碼:#include<stdio.h>#include<string.h>#define INF 1<<29int N,T;int graph[1005][1005];int visit[1005],d[1005];void dijkstra(){ int i,j,dis,k; memset(visit,0
Time of Update: 2018-12-03
http://poj.org/problem?id=2104題意:求一個數列任意區間的第k小值。思路:劃分樹模板題,劃分樹的資料這裡有:http://blog.csdn.net/dyx404514/article/details/8731696#include <iostream>#include <string.h>#include <stdio.h>#include <algorithm>#define maxn 100010#define
Time of Update: 2018-12-03
http://acm.hdu.edu.cn/showproblem.php?pid=4417題意:求一組數列中任意區間內不大於h的數的個數。思路:這題可以用劃分樹來做,我們只要找到區間內比h大的數中最小的那個,若它是該區間第k小的數,則答案即為k-1,我們可以通過二分來尋找區間的第k小數,找到比h大的最小的數後即可得到答案,注意h可能比區間內的所有書都大,這個要特殊處理一下。以下是代碼:#include <iostream>#include
Time of Update: 2018-12-03
轉載請註明出處:優YoU http://blog.csdn.net/lyy289065406/article/details/6742534 大致題意:
Time of Update: 2018-12-03
轉載請註明出處:優YoU http://blog.csdn.net/lyy289065406/article/details/6727035 大致題意:牆上有一面黑板,現劃分為多個矩形,每個矩形都要塗上一種預設顏色C。由於塗色時,顏料會向下流,為了避免處於下方的矩形的顏色與上方流下來的顏料發生混合,要求在對矩形i著色時,處於矩形i上方直接相鄰位置的全部矩形都必須已填塗顏色。在填塗顏色a時,若預設顏色為a的矩形均已著色,或暫時不符合著色要求,則更換新刷子,填塗顏色b。 注意:1、
Time of Update: 2018-12-03
轉載請註明出處:優YoU http://blog.csdn.net/lyy289065406/article/details/6762370 大致題意:某個企業想把一個熱帶天堂島變成旅遊勝地,島上有N個旅遊景點,任意2個旅遊景點之間有路徑連通(注意不一定是直接連通)。而為了給遊客提供更方便的服務,該企業要求道路部門在某些道路增加一些設施。道路部門每次只會選擇一條道路施工,在該條道路施工完畢前,其他道路依然可以通行。然而有道路部門正在施工的道路,在施工完畢前是禁止遊客通行的。這就導致了在施
Time of Update: 2018-12-03
最近做的狀態壓縮DP小節:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=4257zoj 4257一堆氣體相互碰撞產生能量,求最後能產生的最大能量,應該是很基礎的狀態壓縮DP吧,設dp[flag]表示狀態flag時能產生的最大能量,(flag中1表示該氣體還存在,0表示該氣體已經消失)邊界條件是flag所有位都為一時,這時產生的能量為0,然後就枚舉最後剩下的氣體,求最大值即可。#include <iostream>
Time of Update: 2018-12-03
昨天看到一道好題,現與大家分享一下。 http://codeforces.com/contest/165/problem/E題目大意:給一個序列a1~an(n<=1000000),問對於每一個ai來說,是否存在一個數x使得 ai&x==0且x是序列a 中的元素。ai的範圍是(1<=ai<=4000000)。 思路:對於一個數,比如說53,其二進位表示為
Time of Update: 2018-12-03
轉載請註明出處:優YoU http://blog.csdn.net/lyy289065406/article/details/6762432 大致題意: 為了保護放牧環境,避免牲畜過度啃咬同一個地方的草皮,牧場主決定利用不斷遷移牲畜進行餵養的方法去保護牧草。然而牲畜在遷移過程中也會啃食路上的牧草,所以如果每次遷移都用同一條道路,那麼該條道路同樣會被啃咬過度而遭受破壞。
Time of Update: 2018-12-03
轉載請註明出處:優YoU http://user.qzone.qq.com/289065406/blog/1303954302題目翻譯:當一個廣播電台在一個非常大的地區,廣播站會用中繼器來轉播訊號以使得每一個接收器都能接收到一個強烈的訊號。然而,每個中繼器必須謹慎選擇使用,使相鄰的中繼器不互相干擾。如果相鄰的中繼器使用不同的頻道,那麼就不會相互幹擾。由於無線電頻道是一有限的,一個給定的網路所需的中繼頻道數目應減至最低。編寫一個程式,讀取一個中繼網路,然後求出需要的最低的不同頻道數。 建模:一個
Time of Update: 2018-12-03
把最近做的一些狀態壓縮DP整理一下。DP苦手,從簡單的開始。http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1297zoj 2297
Time of Update: 2018-12-03
點擊開啟連結題目分析:最短路徑,用dijkstra演算法可一個實現。就是多了限制條件。用枚舉方法。代碼;#include<stdio.h>#include<cstring> #define max 1000000int n,m;int graph[105][105];int value[105],level[105],d[105];bool used[105],limit[105];int dijkstra(){int sum=max;int i,j;int k,dis;
Time of Update: 2018-12-03
題目大意:要求實現一個棧,除了普通的pop()函數和push()函數外,還有一個max()函數,功能是返回棧中最大值,要求時間複雜度和空間複雜度盡量低。
Time of Update: 2018-12-03
這真是一場神奇的比賽,比賽中各種猜想各種對,但我都無法證明,無語了,正式比賽中要能有這狀態那我不無敵了?不廢話了,上題解吧。 http://codeforces.com/contest/289/problem/AA:水題吧,求出每個區間中所包含的數的個數,求和後,看和k的倍數差多少即可。#include <iostream>#include <string.h>#include <algorithm>#include
Time of Update: 2018-12-03
http://acm.hdu.edu.cn/showproblem.php?pid=4612 Warm upTime Limit: 10000/5000 MS (Java/Others) Memory Limit: 65535/65535 K (Java/Others)Total Submission(s): 2012 Accepted Submission(s): 474Problem Description N planets are connected by M
Time of Update: 2018-12-03
這道題類似成語接龍。題意懂了,方法很簡單,就是從開頭是”b“的字母尋找下去,並判斷最後一個字母是否為'm'如果找的到就退去,很明顯就是個遞迴(DFS)就可以實現了。#include<stdio.h>#include<string.h>char a[100][20];int visit[100];int flag ,n;void DFS(int x){ int k=strlen(a[x]); char *st; st=&a[x][k-1];
Time of Update: 2018-12-03
轉載請註明出處:優YoU http://blog.csdn.net/lyy289065406/article/details/6642573 最近AC題:2528 更新時間:2011.09.22