前言
AK啦啦啦~~~~!!!!!
本题涉及题目:
A: [Bachgold Problem]C: [Voting]
D: [Secrets]
E: [Chips]
T1 Bachgold Problem
题面
原题地址: [A]
题意
将一个数分解成若干个质数,使质数的个数最多
思路
偶数输出2,奇数输出2和一个3。
代码
#include<bits/stdc++.h>
using namespace std;
int n;
int main()
{
scanf("%d",&n);
printf("%d\n",n/2);
if(n&1)
{
for(int i=1;i<=n/2-1;i++)
{
printf("2 ");
}
printf("3");
}
else
{
for(int i=1;i<=n/2;i++) printf("2 ");
}
return 0;
}
小结
水题*1
T2 Parallelogram is Back
题面
原题地址: [B]
题意
给出三个点,求以这三个点为顶点的平行四边形的第四个点。
思路
暴力,公式。
代码
#include<bits/stdc++.h>
using namespace std;
int x1,x2,x3,y11,y2,y3;
int main()
{
scanf("%d%d%d%d%d%d",&x1,&y11,&x2,&y2,&x3,&y3);
printf("3\n");
printf("%d %d\n",x1-x2+x3,y11-y2+y3);
printf("%d %d\n",x1+x2-x3,y11+y2-y3);
printf("%d %d\n",x2+x3-x1,y2+y3-y11);
return 0;
}
小结
水题*2
T3 Voting
题面
原题地址: [C]
题意
每个D都可以杀掉其后面的任意一个R,从1~n重复执行,直到有一方死绝。
思路
由于每一步都是最优,所以D只会杀掉其后面的第一个R。
于是可以组两个队列,队列开头的D必定会杀掉队列开头的R(或R杀D),由于重复执行,所以D杀完R后又要到队列末尾。
代码
#include<bits/stdc++.h>
using namespace std;
queue<int> D,R;
int n,i,d,r;
char c;
int main()
{
for(scanf("%d\n",&n),i=0;i<n;i++) scanf("%c",&c),c=='D'?D.push(i):R.push(i);
while(!D.empty()&&!R.empty())
{
d=D.front(),r=R.front();
D.pop(),R.pop();//以出现的顺序决定生死;
d<r?D.push(n+d):R.push(n+r);//+n是放到队尾后将顺序值提高;
}
D.empty()?printf("R"):printf("D");//看看哪方over了;
return 0;
}
小结
水题*3
T4 Secrets
题面
原题地址: [D]
题意
你只能用一种硬币,且不能刚好凑出n,使使用硬币个数最大。
硬币面值为1,3,3^2,3^3,……
思路
找出n不能整除的最小硬币面值,然后全部用这个硬币。
代码
#include<bits/stdc++.h>
using namespace std;
long long n,a=3;
int main()
{
scanf("%lld",&n);
while(!(n%a)) a*=3;
printf("%lld",n/a+1);
return 0;
}
小结
水题*4
T5 Chips
题面
原题地址: [E]
题意
有一个n*n个棋盘,你有无数个棋子,有k个坏点,棋子是能从一条边到对边(棋盘的角不能放),不能经过坏点。
思路
行数组和列数组储存列和行的第i个能不能放棋子。
代码
#include<bits/stdc++.h>
#define N 1000
using namespace std;
int n,i,x,y,ans,k;
bool X[N+5],Y[N+5];
int main()
{
memset(X,true,sizeof(X));
memset(Y,true,sizeof(Y));
for(scanf("%d%d",&n,&k),i=0;i<k;i++)
{
scanf("%d%d",&x,&y);
X[x]=false;
Y[y]=false;
}
for(i=2;i<n;i++)
{
if(X[i]) ans++;
if(Y[i]) ans++;
}
if(n&1&&X[(n+1)>>1]&&Y[(n+1)>>1]) ans--;//只有n为单数时中间的列和行有可能撞到。
printf("%d",ans);
return 0;
}
小结
水题*5
总结
水题*n