Time of Update: 2018-12-03
http://acm.hdu.edu.cn/showproblem.php?pid=1172題目描述很簡單,思路就是直接類比。對於每組資料的n個條件,分別從1000到9999進行測試,如果滿足條件的數只有一個則記錄輸出,否則就輸出Not sure#include <iostream>#include <cstdio>#include <string>using namespace std;bool check(string num, string a,
Time of Update: 2018-12-03
閑來無事刷刷微博,無意中看到了一道面試題目,拿來與大家分享分享。題目是這樣的,讓你構造一個函數f(n)使得f(f(n))=-n。開始想了半天,沒想明白,琢磨了好一陣子,居然想去遞迴了,其實聽簡單的一道題目,技巧時就是利用基偶數。因為最後的結果要是-n,所以對於函數f來說,首先一點是這個函數絕對不能對數字n進行很大的處理,要不然沒法還原了。所以將數字基變偶,偶變基。正變負,負變正,當然只能2次變化總只能出現一次,否則就不能得到結果了。代碼如下:int f(int
Time of Update: 2018-12-03
題目連結http://acm.hdu.edu.cn/showproblem.php?pid=1072一個人夢見自己背著炸彈走迷宮,炸彈會在6min後爆炸。若能從起點走到終點輸出最短時間,否則輸出-1。矩陣數字0:不可走 1:可走2:起點3:終點4:炸彈時間重設為6廣搜就可以,用一個結構體成員time記錄剩餘爆炸時間,step記錄步數。#include <iostream>#include <cstdio>#include <queue>using
Time of Update: 2018-12-03
1134. 積木分發Description歌手The Pancakes到幼兒園跟小朋友玩耍,她到達的時候小朋友們已經爭著積木玩了。小朋友都想要更多的積木砌一個自己喜歡的圖形,砌完就可以和The Pancakes合照。同時,The Pancakes手上還有一些積木,她可以把手上的這些積木全部給一個小朋友,然後等該小朋友砌完後就可以收回所發的積木和該小朋友原先手上的積木。但她不知道能否讓所有的小朋友都和她合照,聰明的你可以協助她嗎?Input輸入包含多個資料。每個資料的第一行是兩個正整數n和s,1≤
Time of Update: 2018-12-03
2501. 算算式Description_gXX遇到一個麻煩的式子:S = n1 + n2 + n3 + ...... + nk,已知n、k,求S的值。因為_gXX數學很差,希望你能告訴他答案。但是由於他的數學實在太差了,所以你只需要告訴他S除以9901的餘數即可。Input兩個整數,n和k(n ≤ 1000 , k ≤ 109)。Output一個數,表示S除以9901的餘數。Sample Input2 3Sample Output14Problem
Time of Update: 2018-12-03
演算法:對於第i個數,類比計算出其置換周期,記為ai,答案就是所有ai的最小公倍數。 1 2 3 4 5 4 1 5 2 3次數:3 3 2 3 2,最小公倍數6.#include <iostream>#include <cstdio>int gcd(int a, int b){ if (b == 0) return a; else return gcd(b, a % b);}int lcm(int a, int
Time of Update: 2018-12-03
/*令 y = gcd ( x , n ),其中 y>=m ,則有 gcd(x/y,n/y)=1 .於是對於特定的y,我們想求有多少 x 滿足 gcd(x,n)=y, 只要求出有多少 x/y 小於 n/y 且與 n/y 互質——這正是歐拉函數的定義:φ(a) 表示小於a且和a互質的正整數的個數思路: 先求出 n 大於等於 m 的因子 y ,再計算 n/y 的歐拉函數,最後相加即可*/#include <iostream>#include <cmath>using
Time of Update: 2018-12-03
1341.
Time of Update: 2018-12-03
題目連結http://acm.hdu.edu.cn/showproblem.php?pid=1180求起點到終點的最短時間,題目沒說應該都是存在最短時間的。和一般的廣搜區別就是樓梯的判斷,分四種情況討論就可以了。#include <iostream>#include <cstdio>#include <queue>#include <cstring>using namespace std;int dir[][2] = {1,0,-1,0,0,1,0
Time of Update: 2018-12-03
1157. The hardest problemDescriptionIn the final exam, you are given n problems to solve, each one of which has an integer value indicating its difficulty, the larger, the harder. You need to find out which problem is the hardest.InputInput may
Time of Update: 2018-12-03
1817. 校歌手大獎賽Description校歌手大獎賽中每個評委會給每個參賽選手打分,請用類描述每個選手的被評委的評分。選手得分規則為去掉一個最高分和一個最低分,然後計算平均得分,請編程輸出某選手的得分。 Input輸入資料有多組,第一行為資料群組數T每組資料第一行兩個正整數 n m (3 <= n,m <= 100),表示有 n 個 評 委 , m個選手。接下來 n 行,每行 m 個正整數。每行表示一個評委給 m
Time of Update: 2018-12-03
涉及到字串的問題,無外乎這樣一些演算法和資料結構:自動機 KMP演算法 Extend-KMP 尾碼樹 尾碼數組 trie樹
Time of Update: 2018-12-03
soj.me/1825// Problem#: 1825// Submission#: 1211578// The source code is licensed under Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License// URI: http://creativecommons.org/licenses/by-nc-sa/3.0/// All Copyright reserved by
Time of Update: 2018-12-03
Jasison君大神什麼的~N只不同的小豬分配到M所相同的房子,問有多少種方法(每所房子至少要有一隻小豬)思路:對於F[n][m],對第n只小豬單獨考慮,有兩種情況:1)前n-1隻小豬在m-1所房子裡面,第n只小豬單獨一個房子2)前n-1隻小豬在m所房子裡面,第n只小豬在任意一個房子裡面於是F[n][m] = F[n-1][m-1] + m*F[n-1][m]初始條件F[k][1] = 1:k只小豬放在一個房子裡面有1種方法。注意:資料比較大,會超出long
Time of Update: 2018-12-03
迴圈字串的最小標記法的問題可以這樣描述:對於一個字串S,求S的迴圈的同構字串S’中字典序最小的一個。由於語言能力有限,還是用實際例子來解釋比較容易:設S=bcad,且S’是S的迴圈同構的串。S’可以是bcad或者cadb,adbc,dbca。而且最小表示的S’是adbc。對於字串迴圈同構的最小標記法,其問題實質是求S串的一個位置,從這個位置開始迴圈輸出S,得到的S’字典序最小。一種樸素的方法是設計i,j兩個指標。其中i指向最小表示的位置,j作為比較指標。令i=0,j=1如果S[i] >
Time of Update: 2018-12-03
先貼個網上找的比較通俗易懂的教程:2.1 Dijkstra演算法(非負權,使用於有向圖和無向圖) Dijkstra演算法是典型最短路演算法,用於計算一個節點到其他所有節點的最短路徑。主要特點是以起始點為中心向外層層擴充,直到擴充到終點為止。Dijkstra演算法能得出最短路徑的最優解,但由於它遍曆計算的節點很多,所以效率低。Dijkstra演算法是很有代表性的最短路演算法,在很多專業課程中都作為基本內容有詳細的介紹,如資料結構,圖論,運籌學等等。 2.2
Time of Update: 2018-12-03
soj.me/1004依次排序好k,b,x1,y1注意斜率不存在的情況#include <iostream>#include <algorithm>#include <cmath>using namespace std;const double MAX=999999;//自訂無窮大斜率class segment{public: double k,b,x1,y1,x2,y2;//使用斜截式表示線段}arr[10001];bool equal(double
Time of Update: 2018-12-03
#include <iostream>#include <algorithm>#include <vector>using namespace std;class node{public:node(){}node(int a,int b){r=a;s=b;}int r,s;bool operator<(const node &x)const{if(r>x.r)return true;else if(r==x.r)return s<x.
Time of Update: 2018-12-03
轉自http://www.cnblogs.com/mjc467621163/archive/2011/07/11/2102834.html#include<iostream> #include<cstdio>#include<vector>#include<algorithm>using namespace std;int n,m,q,y,k;struct node{ int id,sala,height; int
Time of Update: 2018-12-03
原文連結:http://blog.csdn.net/zpf644792799/article/details/6705865點擊部落格首頁右上方‘管理部落格’進入管理頁面點擊‘管理欄目’找到最下面‘欄目添加’這裡使用者可以自訂模組: 可見自訂模組是支援HTML的,如所示輸入HTML代碼:[html] view plaincopyprint?<DIV> <A style="TEXT-DECORATION: none" href="https://www.ibm.com/