CodeForces 22、23部分题解
找严格第二小的。。。注意只有一种情况,可以sort排序然后unique输出。
int a[N];
int main()
{
int n;
while(~scanf("%d",&n))
{
for(int i=0;i<n;i++)
scanf("%d",&a[i]);
sort(a,a+n);
if(n==1||a[0]==a[n-1]) printf("NO\n");
else
{
unique(a,a+n)-a;
printf("%d\n",a[1]);
}
}
return 0;
}
找子集中出现次数最多的,只求一个数量,数据范围只有100,用map<string,int>。
const int N=1e6+10;
int main()
{
string a;
cin>>a;
map<string,int>q;
int len=(int)a.size();
int ma=0;
for(int i=0;i<len;i++)
for(int j=0;j<len;j++)//枚举所有区间。。
{
string s;
for(int k=i;k<=j;k++)
s+=a[k];
q[s]++;
if(q[s]>=2) ma=max(ma,j-i+1);
}
printf("%d\n",ma);
}//写起来是方便,不过时间复杂度略高。。
规律题,,开始没看懂题意,,CF上的标签是构图。于是枚举了几组,大胆猜想了一下结果是(n-2),1A。
int main()
{
int t,n;
scanf("%d",&t);
while(t--)
{scanf("%d",&n);
if(n<=2) printf("0\n");
else printf("%d\n",n-2); }
return 0;
}
这题真心不错,题意很好懂,但没思路。。
题意:有2n-1个箱子,每个箱子里有一定数量的苹果和橘子。问是否存在一种方案选n个箱子使得苹果的数量不小于苹果总数的一半并且橘子的数量不小于橘子总数的一半。。
思路:排序即可,不管按橘子数递增或者苹果数递增。接下来证明:首先下标从1开始,2n-1一定是奇数,排序后最优情况一定要选最后一个。我们有两种选法:①选所有的奇数,②选所有的偶数和最后一个奇数箱子(因为要选n个箱子)。一下我们按橘子数递增排序(按苹果数一样的)进行讨论,很容易证明:一号方案和二号方案橘子数肯定符合条件的,比如总共有5个箱子,那么选奇数的话:橘子数a1+a3+a5>a2+a4,如果选偶数:a2+a4+a5>a1+a3.那接下来看苹果数咯,苹果数只有两种情况,所以这两种方案必有一种符合。
const int N=1e7+10;
struct zz
{
int x,y,id;
} a[N];
int cmp1(zz a,zz b)
{
return a.x<b.x;
}
int main()
{
int t,n;
scanf("%d",&t);
while(t--)
{
scanf("%d",&n);
ll sum1=0,sum2=0;
for(int i=1; i<=2*n-1; i++)
{
scanf("%d%d",&a[i].x,&a[i].y);
a[i].id=i;
sum1+=a[i].x,sum2+=a[i].y;
}
sort(a+1,a+2*n,cmp1);
ll s1=0,s2=0;
for(int i=1; i<=2*n-1; i+=2)
{
s1+=a[i].x;
s2+=a[i].y;
}
printf("YES\n");//必然存在符合条件的情况。
if(s1*2>=sum1&&s2*2>=sum2)
{
for(int i=1;i<=2*n-1;i+=2)
{
printf("%d ",a[i].id);
}
}
else
{
for(int i=2;i<=2*n-1;i+=2)
{
printf("%d ",a[i].id);
}
printf("%d",a[2*n-1].id);
}
printf("\n");
}
return 0;
}
水题之路。。整天水题不会有提高的。。还是多学几个牛逼的算法吧!
CodeForces 22、23部分题解的更多相关文章
- Codeforces Round #543 Div1题解(并不全)
Codeforces Round #543 Div1题解 Codeforces A. Diana and Liana 给定一个长度为\(m\)的序列,你可以从中删去不超过\(m-n*k\)个元素,剩下 ...
- Codeforces Round #545 Div1 题解
Codeforces Round #545 Div1 题解 来写题解啦QwQ 本来想上红的,结果没做出D.... A. Skyscrapers CF1137A 题意 给定一个\(n*m\)的网格,每个 ...
- Codeforces Round #539 Div1 题解
Codeforces Round #539 Div1 题解 听说这场很适合上分QwQ 然而太晚了QaQ A. Sasha and a Bit of Relax 翻译 有一个长度为\(n\)的数组,问有 ...
- [Codeforces Round #461 (Div2)] 题解
[比赛链接] http://codeforces.com/contest/922 [题解] Problem A. Cloning Toys [算法] 当y = 0 , 不可以 当 ...
- Codeforces 7E - Defining Macros 题解
目录 Codeforces 7E - Defining Macros 题解 前言 做法 程序 结尾 Codeforces 7E - Defining Macros 题解 前言 开始使用博客园了,很想写 ...
- Educational Codeforces Round 64 部分题解
Educational Codeforces Round 64 部分题解 不更了不更了 CF1156D 0-1-Tree 有一棵树,边权都是0或1.定义点对\(x,y(x\neq y)\)合法当且仅当 ...
- Educational Codeforces Round 64部分题解
Educational Codeforces Round 64部分题解 A 题目大意:给定三角形(高等于低的等腰),正方形,圆,在满足其高,边长,半径最大(保证在上一个图形的内部)的前提下. 判断交点 ...
- Codeforces Beta Round #62 题解【ABCD】
Codeforces Beta Round #62 A Irrational problem 题意 f(x) = x mod p1 mod p2 mod p3 mod p4 问你[a,b]中有多少个数 ...
- Codeforces Good Bye 2016 题解
好久没有fst题了...比赛先A了前4题然后发现room里有人已经X完题了没办法只能去打E题,结果差一点点打完...然后C题fst掉了结果就掉rating 了...下面放题解 ### [A. New ...
随机推荐
- windows密码长度最小值改不了
控制台输入gpedit.msc或者在“开始→控制面板→管理工具→本地安全策略→账户策略→密码策略→密码长度最小值”中修改不了,是灰色的,不让修改 用命令行可以修改开始-->运行-->输入& ...
- 转-sql之left join、right join、inner join的区别
left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录 right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录inner join(等值连接) 只 ...
- iOS UILabel UITextView自适应文本,或文本大小自适应
//UILabel自适应文本的高度 UILabel *label = [[UILabel alloc]initWithFrame:CGRectMake(, , , )]; label.numberOf ...
- find missing conjunction, why?
find . -name *.c find: missing conjunction, why? SHELL会把*.c直接扩展成当前工作目录的多个.c文件,所以必须用单引号'*.c'或者/*.c进行转 ...
- select选择框中,model传的值并非是页面上的值,而是另一个值
对于编程来说,money和rebate代表的是金额优惠和折扣优惠,采用money或rebate便于数据存储.但是页面显示给用户的时候是金额优惠和折扣优惠,并不是显示编程中所存储数据.所以选择的mode ...
- 03.Java多线程并发库API使用2
1.多个线程之间共享数据的方式探讨 1.如果每个线程执行的代码相同,可以使用同一个Runnable对象,这个Runnable对象中有那个共享数据,例如,买票系统就可以这么做. 2.如果每个线程执行的代 ...
- 《Head First HTML与CSS》的HTML标签、属性
一个标准的html5页面: <!doctype html> <html lang="zh-cmn-Hans"> <head> <meta ...
- Quartz使用二 通过属性传递数据
上一篇介绍了通过context.getJobDetail().getJobDataMap()方式获取传递的数据,其实可以通过定义属性来传递参数 package org.tonny.quartz; im ...
- java将一个List赋值给另一个List的4种方法
编辑 删除 声明:ArrayList a, 仅仅只是声明了一个list变量,其未来作用相当于C++中的引用变量,亦或者相当于一个对象块的索引,但并未为其分配具体的完整的对象所需要的内存空间,其所分配的 ...
- 备忘录:python 3在class中使用yield
之前代码都是直接在函数级别使用yield,但封装class后如何使用yield很少遇到. 经过半天的学习,总算完成示例.代码没有什么特殊地方,仅仅作为一个工作项. 与生成器合作: ########## ...