【USACO1.3】解題報告
前言
這一章主要考察的是一些簡單的數論和思維轉化能力。還是相對來說比較簡單的。
USACO:http://train.usaco.org
1.3.2.Milking Cows
思路:
字首和基礎題。
每次讀到有人在
到
的時間段內工作,就將
,之後用字首和,如果
,說明在
的時候有人擠奶,否則沒有。
時間複雜度
(
表示時間)
另外,暴力時間複雜度
,線段樹時間複雜度
程式碼:
/*
ID:ssl_zyc2
TASK:milk2
LANG:C++
*/
#include <cstdio>
#include <iostream>
#define N 1000100
using namespace std;
int a[N],n,x,y,max1,max2,k1,k2,s,t;
int main()
{
freopen("milk2.in","r",stdin);
freopen("milk2.out","w",stdout);
scanf("%d",&n);
s=1e9;
for (int i=1;i<=n;i++)
{
scanf("%d%d",&x,&y);
if (t<y) t=y;
if (s>x) s=x; //取時間
a[x]++;
a[y]--;
}
for (int i=s;i<=t;i++)
{
a[i]+=a[i-1]; //字首和
if (a[i])
{
if (k2+1>max2) max2=k2;
k2=0;
k1++;
}
else
{
if (k1-1>max1) max1=k1;
k1=0;
k2++;
}
}
printf("%d %d\n",max1,max2);
return 0;
}
1.3.3.Transformations
思路:
模擬啊。。。
- 轉 轉換到
- 轉 轉換到
- 轉 逆時針轉
- 反射
- 反射 =
- 不變 廢話
- 無法成立
程式碼:
/*
ID:ssl_zyc2
TASK:transform
LANG:C++
*/
#include <cstdio>
#include <iostream>
#include <algorithm>
#define N 20
using namespace std;
char a[N][N],b[N][N];
int n;
bool check1()
{
for (int i=1;i<=n;i++)
for (int j=1;j<=n;j++)
if (a[i][j]!=b[j][n-i+1]) return 0;
return 1;
}
bool check2()
{
for (int i=1;i<=n;i++)
for (int j=1;j<=n;j++)
if (a[i][j]!=b[n-i+1][n-j+1]) return 0;
return 1;
}
bool check3()
{
for (int i=1;i<=n;i++)
for (int j=1;j<=n;j++)
if (a[j][n-i+1]!=b[i][j]) return 0;
return 1;
}
bool check4()
{
for (int i=1;i<=n;i++)
for (int j=1;j<=n;j++)
if (a[i][j]!=b[i][n-j+1]) return 0;
return 1;
}
bool check5()
{
for (int i=1;i<=n;i++)
for (int j=1;j<=n/2;j++)
swap(a[i][j],a[i][n-j+1]);
bool ok=false;
if (check1()) ok=1;
if (check2()) ok=1;
if (check3()) ok=1;
for (int i=1;i<=n;i++)
for (int j=1;j<=n/2;j++)
swap(a[i][j],a[i][n-j+1]);
return ok;
}
bool check6()
{
for (int i=1;i<=n;i++)
for (int j=1;j<=n;j++)
if (a[i][j]!=b[i][j]) return 0;
return 1;
}
int main()
{
freopen("transform.in","r",stdin);
freopen("transform.out","w",stdout);
cin>>n;
for (int i=1;i<=n;i++)
cin>>a[i]+1;
for (int i=1;i<=n;i++)
cin>>b[i]+1;
if (check1()) cout<<1;
else if (check2()) cout<<2;
else if (check3()) cout<<3;
else if (check4()) cout<<4;
else if (check5()) cout<<5;`
else if (check6()) cout<<6;
else cout<<7;
printf("\n");
return 0;
}
1.3.4.Name That Number
思路:
這道題題目看懂了就很簡單。
把
裡面的字串全部轉化成數字,與讀入的
看看是否一樣,一樣的額話就輸出。
要用
程式碼:
/*
ID:ssl_zyc2
TASK:namenum
LANG:C++
*/
#include <cstdio>
#include <iostream>
#include <string>
#include <queue>
#define MAXN 1001000
#define ll long long
using namespace std;
string s;
ll n;
bool ok;
ll change(string s)
{
ll ss=0;
for (int i=0;i<s.size();i++)
if (s[i]>='A'&&s[i]<='C') ss=ss*10+2; //依次判斷
else if (s[i]>='D'&&s[i]<='F') ss=ss*10+3;
else if (s[i]>='G'&&s[i]<='I') ss=ss*10+4;
else if (s[i]>='J'&&s[i]<='L') ss=ss*10+5;
else if (s[i]>='M'&&s[i]<='O') ss=ss*10+6;
else if (s[i]>='P'&&s[i]<='S') ss=ss*10+7;
else if (s[i]>='T'&&s[i]<='V') ss=ss*10+8;
else if (s[i]>='W'&&s[i]<='Z') ss=ss*10+9;
return ss
相關推薦
【USACO1.3】解題報告
前言
這一章主要考察的是一些簡單的數論和思維轉化能力。還是相對來說比較簡單的。 USACO:http://train.usaco.org
1.3.2.Milking Cows
思路:
字首和基礎題。 每次讀到有人在
【USACO1.4】解題報告
前言
本章主要考的是貪心和一些比較麻煩的模擬。難度相比上一章有很明顯的提升。但是稍微想一下還是可以想出來的(第五題除外,看了一下題解的思路)。 USACO:http://train.usaco.org
1.4.2.Mixing Milk
思路:
很明顯是一道貪心基礎
【USACO1.2】解題報告
前言
以後將會不定期刷USACO的題目。每做完一小章會寫一份解題報告。這一小章裡面較簡單或者並不是很重要的題目就會直接放在裡面。而比較重要的題目就會單獨寫部落格,在這裡面放連結。 這一章很簡單,全部都是很基礎的題目。就直接在這裡面一筆帶過。 USACO:http://train.us
【USACO1.5】解題報告
前言
這章只有兩道題,但是質量都不比上一章低。 第一題正解肯定很難,但是資料神奇般的把
O
(
【USACO1.6】解題報告
前言:
這章的三道題目中有兩道是可以用
D
F
S
【USACO2.3】解題報告
前言
本章主要是動態規劃,但是其中幾道題的方法比較多,我採用了其他的方法。 題目已經開始變難,有幾道題還特別值得思考。已經達到普及
T
3
【USACO2.1】解題報告
前言
USACO2.1主要內容是圖論。其中有幾道題是要用深搜做的。而另外幾道題則是利用模擬的方法來完成簡單圖論。 總體來說難度還是比較小的,算是最基礎的演算法吧。 UASCO:http://train.usaco.org
2.1.3.The Castle
題解
【USACO2.2】解題報告
前言
然而只有一道動態規劃的題目。。。 其他三道題都是模擬。。。 難度還是有所增加的。至少在洛谷中又有一道藍題了。 USACO:http://train.usaco.org
USACO2.2.3.Preface Numbering
思路: 我們會發現羅馬數字中每一位都
2018.3.28【 AtCoder beginner092-C 】解題報告(線性處理)
C - Traveling PlanTime limit : 2sec / Memory limit : 256MBScore : 300 pointsProblem StatementThere are N sightseeing spots on the x-axis,
洛谷 T28312 相對分子質量【2018 6月月賽 T2】 解題報告
字符 pac ... 給定 substr ++ 錯誤 如果 題目 T28312 「化學」相對分子質量
題目描述
做化學題時,小\(F\)總是裏算錯相對分子質量,這讓他非常苦惱。
小\(F\)找到了你,請你來幫他算一算給定物質的相對分子質量。
如果你沒有學過相關內容也沒有關系
校內賽 codeforces 827D【最小生成樹】【樹鏈剖分】 解題報告
找不到題面!!
題意
給出一張n(<=2e5)個點 m(<=2e5)條邊無向圖,保證有生成樹。對於每條邊,給出一個最大值maxLength,咦即能夠保證這條邊能夠出現在所有的最小生成樹中,邊權的最大值為maxLength(同時,其他所有邊長度不變
【線上筆試題解題報告系列】網易2017校招內推筆試之程式設計題【持續更新】
網易今年把內推筆試放在牛客網上辦,然後出了一批程式設計題。
題目在:
一共18個,好多(不同崗位抽3個不同的題的樣子)……
慢慢寫吧,做一題寫一題。
以下題解將假定讀者有下列知識,對下面所列舉的細節不再贅述。
(如果有必要對此進行教學的,請站內信我)
C/C++的基本
【Google Kickstart Round_H】解題報告
序
Problem A. Big Buttons
題意
一個長度為 nnn 的 01串,該字串有 mmm 個不能出現的字首,問這樣的字串有多少種?
題解
由於 n,mn,mn,m 的範圍很小,直接建
【Zhou Ping 's 解題報告】為了有資格參加亞洲區ACM而奮鬥
C 字串轉換
Accept:78
Submit:471
Time Limit:1000MS
Memory Limit:65536KB
Description
我們將僅由若干個同一小寫字母構成的字串稱之為簡單串,例如"aaaa
題解 P1208 【[USACO1.3]混合牛奶 Mixing Milk】
位置 using amp 即將 現在 加強 分享圖片 clas 移動 其實根本沒有一樓dalao描述的那麽麻煩......
一樓dalao其實吧,采用了一種純屬模擬的方式。
下面是我的大躍進思想
但是一個個地做減法是不是太慢了?(大躍進思想)
於是我們是不是可以直接進行一個
【leetcode 5040. 邊框著色】解題報告
posit 整數 d+ perf src check 網格 orm poi 給出一個二維整數網格 grid,網格中的每個值表示該位置處的網格塊的顏色。
只有當兩個網格塊的顏色相同,而且在四個方向中任意一個方向上相鄰時,它們屬於同一連通分量。
連通分量的邊界是指連通分量中
【leetcode 94. 二叉樹的中序遍歷】解題報告
stack traversal roo tree order targe blank span etc
前往二叉樹的:前序,中序,後序 遍歷算法
方法一:遞歸
vector<int> res;
vector<int>
【leetcode 145. 二叉樹的後序遍歷】解題報告
中序 stack mage blank res tor tac 前序 top
前往二叉樹的:前序,中序,後序 遍歷算法
方法一:遞歸
vector<int> res;
vector<int> postorderTrave
【leetcode 968. 監控二叉樹】解題報告[待完善...]
由於 camera 需要 spa alt img 狀態 數量 turn
方法一:遞歸
// 0:該節點安裝了監視器 1:該節點可觀,但沒有安裝監視器 2:該節點不可觀
int monitor = 0;
int state(TreeNod
【leetcode 106. 從中序與後序遍歷序列構造二叉樹】解題報告
++ amp src 圖片 ima 遍歷序列 tree cto 建立
前往 中序,後序遍歷構造二叉樹, 中序,前序遍歷構造二叉樹
TreeNode* build(vector<int>& inorder, int l1, int r1,