这次是和队友一次小训练,感觉一开始题不是很难,写了8道题了,还是没有觉得有什么明显难度的,现在还没有碰到DP什么的,但是模拟,DFS建树,并查集倒是用了一下,算得上是复习吧...
剩下4道再补;
A-StarCraft(巨水)
题目链接:https://ac.nowcoder.com/acm/contest/303/A
题目大意:中文题
思路:输入输出
AC:
int main()
{
std::ios::sync_with_stdio(false);
int n;
while(cin>>n)
cout<<1998+n<
B-Fibonacci and Counting(规律)
题目链接:https://ac.nowcoder.com/acm/contest/303/B
题目大意:中文题
思路:找规律,发现每一个都可以推到前面的那个状态
AC:
int main()
{
std::ios::sync_with_stdio(false);
int T;
while(cin>>T)
{
while(T--)
{
int x;
cin>>x;
if(x==1)
cout<<2<
C-LCPS
题目链接:https://ac.nowcoder.com/acm/contest/303/C
题目大意:英文题,没看,不会
思路:不会
D-Campaign(看成二进制暴力)
题目链接:https://ac.nowcoder.com/acm/contest/303/D
题目大意:中文题
思路:一个七位的二进制数,然后1代表守护,0代表放弃,然后选出能够守护的最多的配合
AC:
//#pragma comment(linker, "/STACK:1024000000,1024000000")
#include
#include
#include
//#include
E-Build Pylons(观察水题...)
题目链接:https://ac.nowcoder.com/acm/contest/303/E
题目大意:中文题,很清晰
思路:看样例,然后观察思考发现因为展开需要k时间,所以最后总会在一个地方等待展开,然后中间的过程总会要走的,只要不走回头路,时间是不变的,因此直接从大到小拍一下,然后遍历一遍即可,范围我目测 ll,就直接开 ll 了,
AC:
//#pragma comment(linker, "/STACK:1024000000,1024000000")
#include
#include
#include
//#include
F-Pylon Link(并查集||二分)
题目链接:https://ac.nowcoder.com/acm/contest/303/F
题目大意:中文题
思路:1.把所有的点之间连上边,然后并查集找到使这个图联通的那些边,然后找出最长的那一条/2;
2.二分出正确答案O(n^2 * log(n))的复杂度,我觉得这种方法可以写,但是没有尝试
AC:
//#pragma comment(linker, "/STACK:1024000000,1024000000")
#include
#include
#include
//#include
G-Rubik's Cube
题目链接:https://ac.nowcoder.com/acm/contest/303/G
题目大意:没写,目测不会
思路:
H-Protoss and Zerg(规律后快速幂)
题目链接:https://ac.nowcoder.com/acm/contest/303/H
题目大意:中文题
思路:找规律发现n个兵有2^n - 1的方案数,但后两个相加,再一直乘下去,注意取模就行了
AC:
//#pragma comment(linker, "/STACK:1024000000,1024000000")
#include
#include
#include
//#include
I-Race Sorting(模拟)
题目链接:https://ac.nowcoder.com/acm/contest/303/I
题目大意:中文题
思路:输入,然后遍历三遍,每次输出对应的种类的id
AC:
//#pragma comment(linker, "/STACK:1024000000,1024000000")
#include
#include
#include
//#include
J-Carrier(巨水)
题目链接:https://ac.nowcoder.com/acm/contest/303/J
题目大意:判断输入的符不符合要求
思路:输入,判断,输出
AC:
int main()
{
std::ios::sync_with_stdio(false);
int T;
while(cin>>T)
{
while(T--)
{
int a,b,x,y;
//350 250 6
cin>>a>>b>>x>>y;
if(a<350)
cout<<"You have not enough minerals."<y)
cout<<"You must construct additional pylons."<
K-Technology Tree(建一棵树遍历)
题目链接:https://ac.nowcoder.com/acm/contest/303/K
题目大意:中文题
思路:输入,从基础建筑当成根节点建棵树,然后遍历一遍这棵树,当前节点的值=当前节点+父节点,然后就是输入输出了
AC:
//#pragma comment(linker, "/STACK:1024000000,1024000000")
#include
#include
#include
//#include
L-The Last Stand
题目链接:https://ac.nowcoder.com/acm/contest/303/L
题目大意:没写,
思路: