1017C The Phone Number:

构造数列使得LIS和LDS的和最小,定理已知LIS=L,LDS=n/L的向上取整,根据样例可以得到设置L=根号n,构造方法如样例

截断法构造,不用考虑边界:

Show an example of n=22:

"' 19 20 21 22 15 16 17 18 11 12 13 14 7 8 9 10 3 4 5 6 1 2 "'

    int tmp = sqrt(n);
for(int i=,j,o=n;i<=n;i+=tmp)
{
for(j=min(i+tmp-,n);j>=i;a[j--]=o--);
}

1019A Elections:

选举投票,收买投票人使得1号获胜的最少金额,本题容易陷入样例的坑里而无法自拔。正确做法观察输入规模3000,时间1s,那就枚举咯

 int n,m,a[],b[],x[],c[];
L p=1e18;
int main()
{
int i,j;
L k;
scanf("%d%d",&n,&m);
for(i=;i<=n;i++)
scanf("%d%d",&a[i],&b[i]);
for(i=;i<=n;i++) // 两个数组的选择排序
for(j=i+;j<=n;j++)
if(b[i]>b[j])
swap(a[i],a[j]),swap(b[i],b[j]);
for(i=;i<=n;i++) // 枚举所有的次小值i
{
k=;
for(j=;j<=m;j++)
x[j]=;
for(j=;j<=n;j++)
c[j]=;
for(j=n;j>;j--) // 从后向前
if(x[a[j]]<i || a[j]==)
x[a[j]]++;
else
k+=b[j],c[j]=,x[]++; // 超过阈值的,都买入
for(j=;j<=n;j++) // 能买的再过一遍
if(x[]<=i && a[j]!= && c[j]==)
k+=b[j],c[j]=,x[]++;
if(x[]>i)
p=min(p,k);
}
cout<<p;
return ;
}

codeforces div2 C题思路训练【C题好难,我好菜】的更多相关文章

  1. Codeforces Round #609 (Div. 2)前五题题解

    Codeforces Round #609 (Div. 2)前五题题解 补题补题…… C题写挂了好几个次,最后一题看了好久题解才懂……我太迟钝了…… 然后因为longlong调了半个小时…… A.Eq ...

  2. codeforces 677A A. Vanya and Fence(水题)

    题目链接: A. Vanya and Fence time limit per test 1 second memory limit per test 256 megabytes input stan ...

  3. PAT乙级真题及训练题 1025. 反转链表 (25)

    PAT乙级真题及训练题 1025. 反转链表 (25) 感觉几个世纪没打代码了,真是坏习惯,调了两小时把反转链表调出来了,心情舒畅. 这道题的步骤 数据输入,数组纪录下一结点及储存值 创建链表并储存上 ...

  4. Codeforces Round #316 (Div. 2) (ABC题)

    A - Elections 题意: 每一场城市选举的结果,第一关键字是票数(降序),第二关键字是序号(升序),第一位获得胜利. 最后的选举结果,第一关键字是获胜城市数(降序),第二关键字是序号(升序) ...

  5. sql 经典查询50题 思路(一)

    因为需要提高一下sql的查询能力,当然最快的方式就是做一些实际的题目了.选择了这个sql的50题,这次大概做了前10题左右,把思路放上来,也是一个总结. 具体题目见: https://zhuanlan ...

  6. 转方阵|2012年蓝桥杯B组题解析第五题-fishers

    (6')转方阵 对一个方阵转置,就是把原来的行号变列号,原来的列号变行号 例如,如下的方阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 转置后变为: 1 5 9 1 ...

  7. 移动距离|2015年蓝桥杯B组题解析第八题-fishers

    移动距离 X星球居民小区的楼房全是一样的,并且按矩阵样式排列.其楼房的编号为1,2,3... 当排满一行时,从下一行相邻的楼往反方向排号. 比如:当小区排号宽度为6时,开始情形如下: 1 2 3 4 ...

  8. 【leetcode每日两题】-Day1-简单题

    1. 两数之和 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标. 你可以假设每种输入只会对应一个答案.但是,数组中同一个元素 ...

  9. Java程序设计(2021春)——第一章课后题(选择题+编程题)答案与详解

    Java程序设计(2021春)--第一章课后题(选择题+编程题)答案与详解 目录 Java程序设计(2021春)--第一章课后题(选择题+编程题)答案与详解 第一章选择题 1.1 Java与面向对象程 ...

随机推荐

  1. 待解决new int(i*j)

    这里的确应该用new int [i*j] 来申请一片空间,但new int(i)的含义就像是给p指针指向的内容赋值了,相当于只申请了一个4个字节. 问题是,为什么后面b不能输出结果呢? #includ ...

  2. 用WMI监控IIS

    参考网站:http://blog.chinaunix.net/uid-7910284-id-5774420.html 参考官方文档:https://docs.microsoft.com/en-us/p ...

  3. python获取windows信息

    转载自http://www.blog.pythonlibrary.org/2010/02/06/more-windows-system-information-with-python/ How to ...

  4. 《转》return *this和 return this有什么区别?

    别跟我说 return *this 表示返回当前对象,return this 表示返回当前对象的地址(指向当前对象的指针). 正确答案为:return *this 返回的是当前对象的克隆或者本身(若返 ...

  5. git与eclipse集成之文件回退

    1.1. 文件回退 1.1.1.        添加或修改文件回退,选择要回退的文件,右键Overwrite 1.1.2.        删除文件回退 选择要回退的文件,右键Overwrite 文件变 ...

  6. golang esl api

    通过ESL 调取FS的状态,比如show calls : 用golang  eventsocket 实现 conn, err := eventsocket.Dial("192.168.5.3 ...

  7. HDU 5514

    题意: 给你 N 个数 和 一个 M: 对于 每一个 Ni , 乘以 K 取摸 M 都有一个 集合, 把所有集合合并, 求和 Σ ai ( ai → K * Ni % M ) 思路 : 最开始 直接求 ...

  8. linux shell 数组建立及使用技巧

    参考网址:http://www.cnblogs.com/chengmo/archive/2010/09/30/1839632.html linux shell在编程方面比windows 批处理强大太多 ...

  9. Linux 操作系统死机故障处理方法总结

    通常在出现系统崩溃后,大家会担心再次出现故障,但是发现系统各日志中并没有记录到任何死机前后的信息,无法分析故障原因,认为已经无药可救.但是,实际上,Linux 有多种机制来保证发生系统崩溃后,可以获取 ...

  10. JavaScript 输入小数点(event.key或event.code)

    1. 概述 1.1 说明 在开发过程中,有时候需要仅输入数字与小数,故记录下使用过的功能,以便后期使用. 1.2 key 定义:按下按键时返回的标识符,按键标识符是表示键盘按钮的字符串(如1,2,a等 ...