随便点了一套刷,这套质量挺棒的,学了不少的东西,并且碰到了很久都没有打的题目

T1 card [指针技巧]
题1  集卡片
【问题描述】
lzh小时候很喜欢收集卡片,他经常要去商店购买新到的卡片。
商店出售的卡片有N张,是连续的,并且都连在一起成为一个长串,商店阿姨告诉lzh只能购买连续的一段,这一串卡片共有M种,每种卡片都有一个价格,lzh拿的钱数为V,他想花最少的钱来集齐所有种类的卡片,你能帮帮他吗? 【输入格式】
第1行 三个正整数 N,M,V
第2行共M个正整数,第i个数Ti表示第i种卡片的价格
第3行 N个正整数,表示卡片序列。 【输出格式】
1行 1个整数ans,表示lzh剩余的钱数,若不能集齐,输出’NO ans’,不含引号。 【输入样例】
5 2 20
10 5
1 1 2 2 1
【输出样例】
5 注释
【样例解释】
购买2-3 或者 4-5 都可,花费15,剩余钱数20-15=5. 【数据范围】
对于100%的数据 N<=1000000 ,M<=2000 ,Ti<=2000 , V<=10^9
对于30% 的数据 N<=2000

  

很久没有感受指针的题目了...打起来确实很陌生了

先说一下思路吧,大概是这样的根据队列的思想,设有h,w两个头尾指针

边读边处理,如果头元素在这个队列里出现了2次,那么就把它清除,即h++;

以及判断所有的数是否全都在队列里面,找到最优的值

主要部分是这样的
for(int i=1;i<=n;i++){
scanf("%d",&a[i]);
t++;b[a[i]]++;
s=s+w[a[i]];
if(b[a[i]]==1) l++;
while(b[a[h]]>1){
b[a[h]]--;
s-=w[a[h]];
h++;
}
if(l==m){
if(s<ans) ans=s;
}
}
  

T2 line [小技巧]
题2  染色
【问题描述】
有编号为0到M 的(M+1)个格子,现在有N个操作 (x,y),表示将从x 到 y的格子染色,问一共有多少个格子被染色。
【输入样例】line.in
3 10
0 5
2 6
8 9
【输出样例】line.out
9
【数据规模】
30% N,M<=10000
100% N, M<=1000000; 任何操作保证0<=x<=y<=M。

  

 
之前曾在usaco里看到一道类似的题目,不过那是没有考虑这么多,两个for过去,貌似当时也没有超时...
但是这里明显是不行的 =-=然后就默默地偷瞥了眼题解,看到那个图顿时有一种恍然大悟的感觉!...做法很巧妙
用f,g两个数组分别记录头和尾 然后 s+=h[i];
if(s>0) ans++;
s-=g[i];
很棒的想法是不是?是~ 主代码
	for(int i=0;i<n;i++){
scanf("%d%d",&x,&y);
h[x]++;
w[y]++;
}
for(int i=0;i<m;i++){
s+=h[i];
if(s>0) t++;
s-=w[i];
}
  

T3 rectangle [高精加,高精减,高精乘,高精除低精]
题3  数矩形
【问题描述】
这注定是个不眠之夜!
因为MSH达到了RPK的要求,所以RPK给了MSH第二个惊喜。RPK把MSH带到了一个硕大而神秘的广场,如此广阔的空间只有两个人,而一切静匿到足以听见对方的心跳。
MSH沉醉了。
RPK:“你知道我有多少话想跟你说么?”
MSH摇了摇头。
RPK:“你可以数出来啊,在这个广场上的地面上你能数到矩形的数量,就是我想说的话的数量。”
MSH数了数,实在是太多了,她完全数不尽。
整个广场的地面由两个行和列分别为N1,M1和N2,M2的矩形组成,这两个矩形交叉成十字(N1<N2,M1>M2),在这个图形中,一共有多少个矩形呢?
【输入格式】
一共四行,每行一个数,分别表示N1,M1和N2,M2。
【输出格式】
一个数表示矩形的数量
【输入样例】
7
9
10
6
【输出样例】
1827
【数据规模】
20%的数据每个数≤100;
40%的数据每个数≤10000;
100%的数据每个数≤10^99;
  高精=-=表示真的真的很久很久没有打了!!
学长友情教我打了一个模板~跪跪跪~
自己mark一下

#include<cstring>
#include<cstdio>
#include<algorithm>
using namespace std;
struct hugeint{
int l,s[300];
hugeint () {
l = 1; memset (s, 0, sizeof (0));
}
bool operator <(const hugeint & a)const{
if(l!=a.l)return l<a.l;
for(int i=a.l;i;i--)
if (a.s[i]!=s[i]) return s[i]<a.s[i];
return 0;
}
hugeint operator*(const hugeint &a){
hugeint c;
for(int i=1;i<=l;i++)
for(int j=1;j<=a.l;j++){
c.s[i+j-1]+=s[i]*a.s[j];
c.s[i+j]+=c.s[i+j-1]/10;
c.s[i+j-1]%=10;
}
c.l = l+a.l;
while (c.l > 1 && !c.s[c.l]) c.l--;
return c;
}
hugeint operator+(const hugeint &a){
hugeint c;
for(int i=1;i<=max(a.l,l);i++){
c.s[i]+=a.s[i]+s[i];
c.s[i+1]+=c.s[i]/10;
c.s[i]%=10;
}
c.l=max(a.l+1,l+1);
while (c.l > 1 && !c.s[c.l]) c.l--;
return c;
}
hugeint operator-(const hugeint &a){
hugeint c;
for(int i=1;i<=max(a.l,l);i++){
c.s[i]+=s[i]-a.s[i];
if(c.s[i]<0) c.s[i]+=10, c.s[i+1]--;
}
c.l=l;
while (c.l > 1 && !c.s[c.l]) c.l--;
return c;
}
hugeint operator/(const int &a){
hugeint c;
for(int i=l;i>=1;i--){
c.s[i]=s[i]/4;
if(c.s[i]!=0){
c.s[i+1]+=c.s[i]%4;
c.s[i]/=4;
}
}
c.l=l;
while (c.l > 1 && !c.s[c.l]) c.l--;
return c;
} };
hugeint into(){
char s[300];
scanf("%s",s);
hugeint c;
c.l = strlen (s);
for (int i=0; i<c.l; i++)
c.s[i] = s[c.l-i+1]-'0';
return c;
}
int main(){
freopen("rectangle.in","r",stdin);
freopen("rectangle.out","w",stdout);
hugeint n1,m1,n2,m2,n,m,a,b;
n1=into();
m1=into();
n2=into();
m2=into();
hugeint one;
one.s[1]=1;
a=n1*(n1+one)*m1*(m1+one)/4;
b=n2*(n2+one)*m2*(m2+one)/4;
n=min(n1,n2);
m=min(m1,m2);
n=n*(n+one)*m*(m+one)/4;
printf("%lld",a+b-n);
return 0;
}

  哦对了,以及矩形个数:(n+1)*n*(m+1)*m/4;



 

2013集训.DAY21.A的更多相关文章

  1. 2013集训.DAY1.A

    发现自己漏整理了一套,现在附上T1:primenumT2:sendroseT4:warfare除了第一题以外,其余的两题由于当时太弱什么都不会,所以用来学习....T2 SPFA T4 最大生成树

  2. COGS2356 【HZOI2015】有标号的DAG计数 IV

    题面 题目描述 给定一正整数n,对n个点有标号的有向无环图进行计数. 这里加一个限制:此图必须是弱连通图. 输出答案mod 998244353的结果 输入格式 一个正整数n. 输出格式 一个数,表示答 ...

  3. 多项式模板&题目整理

    注:多项式的题目,数组应开:N的最近2的整数次幂的4倍. 多项式乘法 FFT模板 时间复杂度\(O(n\log n)\). 模板: void FFT(Z *a,int x,int K){ static ...

  4. < < < 2013年国家集训队作业 > > >

    完成题数/总题数:  道/37道 1.  A1504. Book(王迪): 数论+贪心   ★★☆        2013中国国家集训队第二次作业 2.  A1505. 树(张闻涛): 倍增LCA+可 ...

  5. 2013 Asia Changsha Regional Contest---Josephina and RPG(DP)

    题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=4800 Problem Description A role-playing game (RPG and ...

  6. SharePoint 2013: A feature with ID has already been installed in this farm

    使用Visual Studio 2013创建一个可视web 部件,当右击项目选择"部署"时报错: "Error occurred in deployment step ' ...

  7. Visual Studio 2013 添加一般应用程序(.ashx)文件到SharePoint项目

    默认,在用vs2013开发SharePoint项目时,vs没有提供一般应用程序(.ashx)的项目模板,本文解决此问题. 以管理员身份启动vs2013,创建一个"SharePoint 201 ...

  8. QDEZ集训笔记【更新中】

    这是一个绝妙的比喻,如果青岛二中的台阶上每级站一只平度一中的猫,差不多站满了吧 自己的理解 [2016-12-31] [主席树] http://www.cnblogs.com/candy99/p/61 ...

  9. SharePoint 2013 create workflow by SharePoint Designer 2013

    这篇文章主要基于上一篇http://www.cnblogs.com/qindy/p/6242714.html的基础上,create a sample workflow by SharePoint De ...

随机推荐

  1. 私人定制javascript中数组小知识点(Only For Me)

    先上笑话,1.刚看到一个游泳的,想起公司组织去三亚旅游,老板跳海里,各种挣扎,捞上来老板第一句话:我记得我会游泳的啊. 2.媳妇说:老公对不起,我把你新买的自行车撞散架了! 老公:没事宝贝,你若安好, ...

  2. 【转】Appium基于安卓的各种FindElement的控件定位方法实践

    原文地址:http://blog.csdn.net/zhubaitian/article/details/39754041#t11 AppiumDriver的各种findElement方法的尝试,尝试 ...

  3. JavaEE(1) - Weblogic 服务器管理的数据源

    JBoss下载: http://jbossas.jboss.org/downloads http://www.cnblogs.com/xw-cnblogs/articles/2439969.html ...

  4. MSSQL发现第五到数据的第十

    第二十数据查询数据库,第十条数据,两起案件: 1,ID是连接的,当然这样的情况比較好查.直接SELECT就能够了.取ID大于5小于10就能够了, 这样的情况比較少. 2.ID不是连接的.假设要取第五条 ...

  5. .net EF 事物 订单流水号的生成 (一)

    首先需要 添加 System.Transactions 程序集 数据表: create table SalesOrder ( ID ,) primary key not null, OrderNo ) ...

  6. 【iOS开发-48】九宫格布局案例:自己主动布局、字典转模型运用、id和instancetype差别、xib反复视图运用及与nib关系

    本次九宫格案例: (1)导入app.plist和各种图片素材,方便兴许开发.实际开发中,也是如此. (2)把plist中数组导入进来. --由于本案例中app.plist终于是一个数组,数组里面是字典 ...

  7. 从WebBrowser中取得Cookie 和 WebClient设置cookie!

    原文:从WebBrowser中取得Cookie 和 WebClient设置cookie! 从WebBrowser中取得Cookie 的代码 CookieContainer myCookieContai ...

  8. MySQL引擎的相关知识

    MySQL数 据库引擎取决于MySQL在安装的时候是如何被编译的.要添加一个新的引擎,就必须重新编译MYSQL.在缺省情况下,MYSQL支持三个引 擎:ISAM.MYISAM和HEAP.另外两种类型I ...

  9. How to:Installshield判断操作系统是否为64位,并且为操作注册表进行设置

    原文:How to:Installshield判断操作系统是否为64位,并且为操作注册表进行设置 IS脚本操作注册表在64位平台下必须有特殊的设置 if (SYSINFO.bIsWow64) then ...

  10. Android基础笔记(十)- 帧动画、补间动画具体解释、对话框

    帧动画 补间动画Tween Animation 对话框以及面试中的注意点 帧动画 帧动画非常easy,我们首先看一下Google官方解释This is a traditional animation ...