Codeforces Round #388 (Div. 2) A+B+C!
2024-08-23 02:31:20
任何一个数都可以由1和2组成,由于n是大于等于2的,也就是可以由2和3组成。要求最多的素数即素数越小越好,很明显2越多越好,如果n为奇数则再输出一个3即可。
int main()
{
int n;
while(~scanf("%d",&n))
{
int k=n/2;
printf("%d\n",k);
for(int i=1;i<k;i++)
printf("2 ");
if(n%2) printf("3\n");
else printf("2\n");
}
return 0;
}
唉,小心使得万年船,可是智者千虑必有一失。被CF坑怕了于是再次被坑。
题意:给你三个不同的点,不在同一条直线上,求最多有多少种方法加一个点使得四个点构成平行四边形。
思路:其实这三个不在同一条直线上那么必然会有三种情况(某一个点以另外两个点所连成的边的对称点)。
但前几次CF被数据范围坑惨了,看到题目的范围以为所有的点必须在这个范围内,结果WA了一发,回过头发现是输出在这个范围内而已。
int main()
{
int x1,y1,x2,y2,x3,y3;
scanf("%d%d%d%d%d%d",&x1,&y1,&x2,&y2,&x3,&y3);
int a1,b1,a2,b2,a3,b3,f1=0,f2=0,f3=0;
a1=x2+x3-x1,b1=y2+y3-y1;//点关于线段对称
a2=x1+x3-x2,b2=y1+y3-y2;
a3=x2+x1-x3,b3=y2+y1-y3;
printf("3\n");
printf("%d %d\n",a1,b1);
printf("%d %d\n",a2,b2);
printf("%d %d\n",a3,b3);
return 0;
}
题意:还是有点不明白。投票选举,有n个候选人,每个人每次可以否定另外一个人,被否定的人没有资格进行选举了,每轮从编号为1到n开始阐述。题目说轮到某个人时这个人不再有选举权,这里搞得我稀里糊涂的,还是英语太菜。
思路:没看懂题结合样例以为贪心策略就是每次都把最靠前的干掉,然后看最后谁留下来了。然而终判跪在21组。看了很多人的提交代码(基本上一个样),大概是题意不清,按AC代码的理解思路应该是每次干掉比自己编号大的,如果没有再循环找。但这里就容易超时了,于是用队列分别把位置存起来,每次比较把小的加入队列里,看最后谁剩下来了。
int main()
{
int n;
while(~scanf("%d%s",&n,s))
{
memset(v,0,sizeof(v));
queue<int>qd;
queue<int>qr;
for(int i=0;i<n;i++)
{
if(s[i]=='D') qd.push(i);
else qr.push(i);
}
while(qr.size()||qd.size())
{
if(!qd.size()||!qr.size())
{
if(!qd.size()) printf("R\n");
else printf("D\n");
break;
}
int pd=qd.front();
qd.pop();
int pr=qr.front();
qr.pop();
if(pr<pd) qr.push(pr+n);//很巧妙的解决了循环问题
else qd.push(pd+n);//大的被干掉了。
}
}
return 0;
}
咸鱼终究无法翻身,C题做出来了又是在终判的时候跪了,居然还能跑20多组样例。。D题跪了两发最终没过,得用二分写。
最新文章
- 多线程之异步编程: 经典和最新的异步编程模型,async与await
- List view优化
- Read4096
- 超级懒汉编写的基于.NET的微信SDK
- Ant基本使用指南
- asp.net_MVC_jq三级联动
- linux中配置maven环境
- TortoiseSVN 1.8 关于右键的设置
- mysql count max min 语句用法
- gridControl 中CellValueChanged,ShowingEditor,CustomDrawCell的用法
- Docker系列之基础实践篇(上)
- Centos7破解密码的两种方法--技术流ken
- Docker 方式运行 sonarqube
- 1-4Controller之Middleware
- 笔记 jquery 的一个bug解决方法积累
- javascript使用bind指定接收者
- leetcode922
- DBGRID控件里可以实现SHIFT复选吗?怎么设置?
- IEEEXtreme 10.0 - Inti Sets
- HP-unix如何生成动态库?