原创 洛谷 P1170 兔八哥與獵人

傳送門 結論:座標軸上兩個整點的連線上是否有其他整點只需看兩個整點的橫座標之差的絕對值和縱座標之差的絕對值是否互質,若互質,則沒有其他整點,否則有。 #include <iostream> #include <cmath> usi

原创 洛谷 P1164 小A點菜

傳送門 #include <iostream> using namespace std; #define MAXN 100+10 #define MAXM 10000+10 int a[MAXN] = { 0 }; int dp[

原创 洛谷 P1091 合唱隊形

傳送門 思想:兩邊最長上升子序列 #include <iostream> #include <algorithm> using namespace std; #define MAX 100+10 int a[MAX] = { 0

原创 PTA 找完數

所謂完數就是該數恰好等於除自身外的因子之和。例如:6=1+2+3,其中1、2、3爲6的因子。本題要求編寫程序,找出任意兩正整數m和n之間的所有完數。 輸入格式: 輸入在一行中給出2個正整數m和n(1<m≤n≤10000),中間以空

原创 PTA N個數求和

本題的要求很簡單,就是求N個數字的和。麻煩的是,這些數字是以有理數分子/分母的形式給出的,你輸出的和也必須是有理數的形式。 輸入格式: 輸入第一行給出一個正整數N(≤100)。隨後一行按格式a1/b1 a2/b2 …給出N個有理數

原创 PTA 找鞍點

一個矩陣元素的“鞍點”是指該位置上的元素值在該行上最大、在該列上最小。 本題要求編寫程序,求一個給定的n階方陣的鞍點。 輸入格式: 輸入第一行給出一個正整數n(1≤n≤6)。隨後n行,每行給出n個整數,其間以空格分隔。 輸出格式:

原创 PTA 螺旋方陣

所謂“螺旋方陣”,是指對任意給定的N,將1到N×N的數字從左上角第1個格子開始,按順時針螺旋方向順序填入N×N的方陣裏。本題要求構造這樣的螺旋方陣。 輸入格式: 輸入在一行中給出一個正整數N(<10)。 輸出格式: 輸出N×N的螺

原创 KMP算法

//KMP模式匹配算法 void get_next(string T, int* next) //計算出當前要匹配的串next數組 { int i, j; i = 1; j = 0; next[

原创 C++有點用的小知識(持續更新)

1.length()函數 只用來獲取字符串的長度。 變量名.length() 2.size()函數 既可以獲取字符串的長度也可以獲取vector類型的長度。 變量名.size() 3.sizeof()運算符 用來求對象所佔內存空間

原创 PTA 日曆

日曆是用於表述時間的系統,從小時到分鐘,從月到日,最後從年份到世紀。術語小時、 日、月、年、世紀都是日曆系統表述時間的單位。 按照目前國內使用的陽曆,閏年被定義爲能被4整除的年份,但是能被100整除而不能被 400整除的年是例外,

原创 PTA 階乘和加強版

計算階乘和Sum= 1!+2!+…+n! 對1000000007求模的結果(不含前導0)。 輸入格式: 輸入若干個整數 ,其中每個整數 N ,滿足1<=N<=200000000。 輸出格式: 輸出對應各個整數的階乘和對100000

原创 Visual Studio 2019中freopen_s()函數的使用

作用: 不用從鍵盤中輸入數據,直接出文本中輸入。 用於大規模輸入和測試。 用法: 1.以計算a+b爲例,代碼寫好 註釋的地方是模板。 2.在解決方案資源管理器的資源文件中新建文本文件 3.在"in.txt"中輸入數據 4.

原创 C++函數的分文件編寫

步驟: 1.創建後綴名爲.h的頭文件 2.創建後綴名爲.cpp的源文件 3.在頭文件中寫函數的聲明 4.在源文件中寫函數的定義 示例: 以Visual Studio 2019編譯器爲例 1.在項目選項卡中添加新項 2.創建後

原创 C++排序算法實現

選擇排序 #include <iostream> using namespace std; int a[100]; void Select_Sort(int a[], int n) { int k,t=0; for (int

原创 PTA 隨機數生成

隨機數生成練習 僞隨機數 我們可以使用rand函數來產生僞隨機數,可以使用srand函數來設置帶種子和不帶種子。輸出設置種子爲seed的生成隨機數區間爲[a,b]的第n個隨機數。 rand() % (b-a+1) +a ; 輸入格