a:three friends
題意:給出三個點的座標,每乙個點可以進行左移或者右移單位1,或者不移動,問最後三個點之間的相對距離最小值是多少。
解題思路:
因為每乙個點最多三種情況,所以列舉一下即可。
**如下:
#include
using
namespace std;
typedef
long
long ll;
const
int n=
1e5+10;
int n,m,k,t;
ll a,b,c,d;
ll num[3]
=;void
solve()
}}cout<}int
main()
return0;
}
b:snow walking robot
題意:給出一段機器指令,你可以刪去一些指令,使最後剩餘的指令操作之後回到原點,且這個過程中不能經過相同點,問最多可以剩下多少指令。
解題思路:
分析可知,要回到原點,所以向上的操作次數等於向下的操作次數,向左的操作次數等於向右的操作次數,這個地方可以統計取min,對於可行的操作方案,只需要用剩餘的操作按照左上右下畫乙個正方形即可。還需要注意一點,當向左向右的操作次數為0時,向上和向下只能為1,反之亦然。
**如下:
#include
using
namespace std;
typedef
long
long ll;
const
int n=
1e5+10;
int n,m,k,t;
int a,b,c,d,e,f;
string s;
void
solve()
e=min(a,b)
; f=
min(c,d);if
((e==
0&&f>1)
||(e>
1&&f==0)
) cout<<
(e+f)*2
int i=
0;i)cout<<
"l";
for(
int i=
0;i)cout<<
"u";
for(
int i=
0;i)cout<<
"r";
for(
int i=
0;i)cout<<
"d";
cout<}int
main()
return0;
}
c:yet another broken keyboard
題意:給出一段字串,其中一些字元你打不出來,為其他字元你可以打出來的子串個數最多為多少。
解題思路:
可以統計連續的可以打出的字元的長度,假設為n那麼此段區間的答案貢獻是n*(n+1)/2,累加一下即可。
**如下:
#include
using
namespace std;
typedef
long
long ll;
const
int n=
2e5+10;
int n,m,k,t;
int vis[27]
;char c;
string s;
void
solve()
cout<}int
main()
d:remove one element
題意:給出一段正整數序列,你可以選擇移除乙個,問序列中最長嚴格遞增子段長度是多少。
解題思路:
可以用dp方程進行轉移,dp[i][0]代表以i為結尾不採用移除的最長子段,dp[i][1]代表採用移除可以達到的最大字段。
**如下:
#include
using
namespace std;
typedef
long
long ll;
const
int n=
2e5+10;
int n,m,k,t;
int a[n]
,dp[n][2
];void
solve()
else
ans=
max(ans,
max(dp[i][0
],dp[i][1
]));
}printf
("%d\n"
,ans);}
intmain()
e:nearest opposite parity
題意:給出一段整數序列,你可以在第i個位置向左或者向右移動a[i]個單元格,如果不越界,問在第i個位置移動到與它奇偶性不同的單元格的最小步數為多少。
解題思路:
這道題理解的還不是很理解,解題過程是先把能到達的兩個點反向建一條邊,如果這兩個點奇偶性不同,則將當前點加入到佇列中,再用這個點來更新奇偶性相同的點。
**如下:
#include
using
namespace std;
typedef
long
long ll;
const
int n=
2e5+10;
int n,m,k,t;
int a[n]
,ans[n]
,vis[n]
;vector<
int>v[n]
;queue<
int>q;
void
solve()
} now=i+a[i];if
(now<=n)}}
while
(!q.
empty()
)}}for
(int i=
1;i<=n;i++)}
intmain()
2015 8 15比賽總結
在總結之前,我必須膜拜一下某個切完提高組來省賽組虐場的犇。今天的比賽,失策還是有的,今天的問題如下 打 不小心,打錯了乙個小細節,導致最終答案錯誤。有的題目a了樣例我就以為可以了,或者是打的對拍也錯了 打題前沒有想清楚,最後對拍時才發現錯誤。第一題 這是道二分的題目,我在做比賽時就想到了正解,就是用...
8 17比賽總結
這次比賽考得一般般,這回的題是前段時間學的圖論演算法的測試題 100 52.2 40 12.5。1 位圖 這題是很簡單的圖論,用bfs 加優化簡單 o nm 過了。正解 這題將所有更新的點記錄在乙個佇列裡 初始的時候都是1 的看為更新的 然後每次將這些點往四周擴散,如果可以擴散,那麼 ans x,y...
8 18 比賽總結
這次比賽很不錯,排名第一 100 100 0 100 300。1 跳格仔 這題在比賽的時候做就很淼,直接dp 就可以了。正解 dp。2 2048 這題是一道純模擬題,只需要模擬2048 執行的步驟來進行迴圈和合併,由於 比較複雜,所以要精細做,考試的時候在除錯一小時後終於將這道題做了出來。正解 同上...