T1:carpet

  题目:给定一个N点M边的无向图,每条边有权值W,选择K条边,保证点与点之间最多一条路径且W的和最大

  数据范围:对于100%的数据,n,m≤100000

  思路:最大生成树。。。。。。。

代码:

constmaxn=100100;
typerec=recordx,y,w:longint;end;
vara:array[1..maxn] of rec;f:array[1..maxn] of longint;n,m,k,i:longint;function find(x:longint):longint;beginif f[x]=x then exit(f[x]);f[x]:=find(f[x]);exit(f[x]);end;procedure qsort(l,r:longint);vari,j:longint;mid,tmp:rec;begini:=l; j:=r; mid:=a[(l+r) div 2];repeatwhile a[i].w>mid.w do inc(i);while a[j].w<mid.w do dec(j);if i<=j thenbegintmp:=a[i];a[i]:=a[j];a[j]:=tmp;inc(i);dec(j);end;until i>j;if i<r then qsort(i,r);if l<j then qsort(l,j);end;procedure solve;varfx,fy,i:longint;ans:int64;beginans:=0;for i:=1 to n do f[i]:=i;for i:=1 to m dobeginfx:=find(a[i].x);fy:=find(a[i].y);if fx<>fy thenbeginf[fx]:=fy;ans:=ans+a[i].w;dec(k);if k=0 then break;end;end;writeln(ans);end;
beginreadln(n,m,k);for i:=1 to m do readln(a[i].x,a[i].y,a[i].w);qsort(1,m);solve;
end.

T2:calc

  题目:定义一种运算!:N!K=(N-1)!K*N!(K-1)(N>0 and K>0);

N!K=1(N=0); N!K=N(K=0)。给定N,K,求N!K的约数个数,答案对1e9+9取余

  数据范围:对于100%的数据,n≤1000,k≤100

  思路:那么对于一个数的约数个数,由唯一分解定理可得,为各个质因数的次方数+1的乘积,再由给定的表达式发现,N!K的所有运算中只存在乘法,所以可以先预处理出1000以内的所有质数(也就168个),然后用f[i,j]记录每一项各个质数的指数,相加即可

代码:

constmo=1000000009;
varf:array[0..1000,0..100,1..168] of longint;p:array[1..168] of longint;n,k,i,m,t,j,l:longint;ans:qword;procedure pre;vari,j,t:longint;flag:boolean;beginp[1]:=2; t:=1;for i:=3 to 1000 dobeginflag:=true;for j:=2 to trunc(sqrt(i)) doif i mod j=0 then flag:=false;if flag thenbegininc(t);p[t]:=i;end;end;end;function find(x:longint):longint;vari:longint;beginfor i:=1 to 168 do if x=p[i] then exit(i);end;
beginpre;readln(n,k);fillchar(f,sizeof(f),0);for i:=1 to n dobeginm:=i;for j:=2 to i dobeginif m mod j=0 thenbegint:=find(j);while m mod j=0 dobegininc(f[i,0,t]);m:=m div j;end;end;end;end;for i:=1 to n dofor j:=1 to k dofor l:=1 to 168 dof[i,j,l]:=(f[i-1,j,l]+f[i,j-1,l]) mod mo;ans:=1;for i:=1 to 168 do ans:=(ans*(f[n,k,i]+1)) mod mo;writeln(ans);
end.

T3:railway(题目描述好长好长。。。。。。)

  题目:

  简化:其实就是一个无向图的边都有颜色,每一种颜色都按如阶梯水费那般收取费用,最后让你求最小的费用(如果可以到达)

  思路:对于一家铁路公司,我们可以首先使用 Floyd 算法求出任 意两点 x, y 间只经过属于该家铁路公司铁路的最短路,那么在新 图中我们在 x, y 间加一条 x 到 y 最短路对应的花费为边权的边。 接下来只要在新图中使用 Floyd 算法求出任意两点间的最小花费就可以了。

代码:

constmaxc=20;maxn=100;maxm=10000;maxp=50;maxw=200000;inf=1061109567;
typerec=recordx,y,w,b:longint;end;
varf:array[1..maxc,1..maxn,1..maxn] of longint;fa:array[1..maxn] of longint;a:array[1..maxm] of rec;p:array[1..maxc] of longint;q,r:array[1..maxc,1..maxp] of longint;cost:array[1..maxc,0..maxw] of longint;d:array[1..maxn,1..maxn] of longint;n,m,c,s,t,i,j,k,l,x,y,w,b,fx,fy,fs,ft:longint;function min(a,b:longint):longint;beginif a<b then exit(a) else exit(b);end;function find(x:longint):longint;beginif x=fa[x] then exit(fa[x]);fa[x]:=find(fa[fa[x]]);exit(fa[x]); end;
beginfillchar(f,sizeof(f),$3f);fillchar(d,sizeof(d),$3f);readln(n,m,c,s,t);for i:=1 to m dobeginreadln(x,y,w,b);a[i].x:=x; a[i].y:=y; a[i].w:=w; a[i].b:=b;f[b,x,y]:=w;f[b,y,x]:=w;end;for i:=1 to n do fa[i]:=i;for i:=1 to m dobeginx:=a[i].x; y:=a[i].y;fx:=find(x); fy:=find(y);if fx<>fy then fa[fx]:=fy;end;fs:=find(s); ft:=find(t);if fs<>ft then begin writeln(-1); halt; end;for i:=1 to c do read(p[i]);for i:=1 to c dobeginfor j:=1 to p[i]-1 do read(q[i,j]); q[i,p[i]]:=inf;for j:=1 to p[i] do read(r[i,j]);l:=1;for j:=1 to maxw dobeginif j>q[i,l] then inc(l);cost[i,j]:=cost[i,j-1]+r[i,l];end;end;for l:=1 to c dofor k:=1 to n dofor i:=1 to n dofor j:=1 to n dof[l,i,j]:=min(f[l,i,j],f[l,i,k]+f[l,k,j]);for i:=1 to n dofor j:=1 to n dofor k:=1 to c doif f[k,i,j]<>inf then d[i,j]:=min(d[i,j],cost[k,f[k,i,j]]);for k:=1 to n dofor i:=1 to n dofor j:=1 to n dod[i,j]:=min(d[i,j],d[i,k]+d[k,j]);writeln(d[s,t]);
end.

noip2016模拟赛day7相关推荐

  1. FCS省选模拟赛 Day7

    Description Solution T1 island 考虑把问题成两部分计算 纵坐标的距离和很好计算,在输入的同时一次计算了就完事 横坐标又分成两部分 分别在\(y\)轴不同侧的矩形的距离和同 ...

  2. 清北学堂模拟赛day7 错排问题

    /* 考虑一下已经放回m本书的情况,已经有书的格子不要管他,考虑没有书的格子,不考虑错排有(n-m)!种,在逐步考虑有放回原来位置的情况,已经放出去和已经被占好的格子,不用考虑,剩下全都考虑,设t=x ...

  3. 省选模拟赛Day7 T3 随便乱走

    题意: 一个n个点的环,当你在i号点时有Pi/2的概率走向(i%n+1)号点,有Pi/2的概率走向((i-2+n)%n+1)号点,有(1-pi)的概率永远停下,动态修改Pi,多次询问从i号点出发走的距 ...

  4. NOIP2016模拟赛 序 (LIS)

    序 [问题背景] zhx给他的妹子们排序. [问题描述] zhx有N个妹子,他对第i个妹子的好感度为 a i   a_i , 且所有 a i   a_i两两不相等.现在N个妹子随意站成一排,他要将她们 ...

  5. NOIP2016 模拟赛

    --那些年,我们学过的文化课 考场得分140分. 背单词 (word.c/cpp/pas) [题目描述] fqk 退役后开始补习文化课啦, 于是他打开了英语必修一开始背单 词. 看着满篇的单词非常头疼 ...

  6. 5.4QBXT 模拟赛 (Rank1 机械键盘 蛤蛤)

    NOIP2016提高组模拟赛 --By wangyurzee7 中文题目名称 纸牌 杯具 辣鸡 英文题目与子目录名 cards cups spicychicken 可执行文件名 cards cups ...

  7. 20181021模拟赛(暴力+暴力+优先队列二分)

    NOIP2016 提高组模拟赛 IzumiKonata 题目名Tetrix Tree Copier 输入文件名tetrix.in tree.in copier.in 输出文件名tetrix.out t ...

  8. NOI.AC NOIP模拟赛 第六场 游记

    NOI.AC NOIP模拟赛 第六场 游记 queen 题目大意: 在一个\(n\times n(n\le10^5)\)的棋盘上,放有\(m(m\le10^5)\)个皇后,其中每一个皇后都可以向上.下 ...

  9. 2017.6.11 校内模拟赛

    题面及数据及std(有本人的也有原来的) :2017.6.11 校内模拟赛 T1 自己在纸上模拟一下后就会发现 可以用栈来搞一搞事情 受了上次zsq 讲的双栈排序的启发.. 具体就是将原盘子大小cop ...

最新文章

  1. multipart/form-data和application/x-www-form-urlencoded的区别
  2. (54)线程结构体 ETHREAD,线程断链
  3. mysql_rollback_MySQL的rollback--事务回滚
  4. 启明云端分享|LVGL官方认证的开发板,到底有多牛
  5. Linux版本的ActiveMQ安装过程
  6. swag您的装置不支持_209P型铁路客车转向架之轮对轴箱弹簧定位装置简介
  7. Python学习入门基础教程(learning Python)--5.5 Python写操作详解
  8. https的报文传输机制
  9. atitit.提升开发效率---mda 软件开发方式的革命--(2)
  10. SPACEMACS 配置
  11. 计算机桌面图标往左进去只能看见一半,win7系统桌面图标只显示一半另外一半显示别的程序的解决方法...
  12. asio ssl 笔记
  13. Java 基础知识总结—ArrayList
  14. CS_2022_01
  15. 处理任意类型链表模板
  16. source insight4.0使用教程
  17. 百度地图清除指定覆盖物
  18. 智慧的车联网,是否会让我们失去操控的乐趣?
  19. Unity入门常见错误之碰撞检测方法无法触发
  20. trace-event

热门文章

  1. Long与long的区别
  2. 关于自动化诊断测试(CANoe.Diva的应用)
  3. [最大生成树Kruskal/倍增LCA] 火车运输 洛谷P1967
  4. 火影T5A笔记本系统损坏了无法进入桌面怎么办?
  5. 程序员笔试题---国信证券
  6. 荐书 | 8 本热门 AI 原版好书,趁假期充电!
  7. 空字符串和null有什么区别
  8. 态℃ |一条毛巾在拼多多的新消费奇遇记
  9. 一种改进的进化模型和混沌优化的萤火虫算法-附代码
  10. python股票量化分析_python实战之股票交易量化分析