D8
=-=昨天被老师拉去吃点心了就没有发题解...忧伤..昨天的T2貌似都没有调完嗯
今天脑洞是大啊..
T1模拟写挂..呵呵我一面
T2数学题..刚开始只会求素数表的那种方法暴力..不过后面他们都知道一种数学方法..然后算是A了吧
T3SPFA..不过感觉略复杂..不会啊QAQ
T4最大生成树啊...没有时间打了 喜闻乐见,不过感觉还是会有一个地方卡住,详见题解
T1:纯模拟
像我这样代码能力那么弱的人,就很容易写挂了
就比如
h=s+n-1;
while(h>m){
h-=m;
}
要判断第一个点有没有超范围..之后的点虽然有想到,不过第一个点你想到了没有!
...有空多练练这种无脑题吧...再写挂就不好玩了嗯
附上代码:
#include<cstdio>
#include<cstring>
using namespace std;
int h,m,s,n,k,ans=0,tot=0;
bool a[1001];
int main(){
freopen("game.in","r",stdin);
freopen("game.out","w",stdout);
scanf("%d%d%d%d",&m,&s,&n,&k);
memset(a,true,sizeof(a));
h=s+n-1;
while(h>m){
h-=m;
}
a[h]=false;
printf("%d ",h);
for(int i=2;i<=m;i++){
if(i%2==0){
for(int j=1;j<=k;j++){
h--;
if(h==0) h=m;
if(!a[h]){
while(!a[h]){
h--;
if(h==0) h=m;
}
}
}
}
a[h]=false;
if(i%2!=0){
for(int j=1;j<=n;j++){
h++;
if(h==m+1) h=1;
if(!a[h]){
while(!a[h]){
h++;
if(h==m+1) h=1;
}
}
}
a[h]=false;
}
printf("%d ",h);
}
return 0;
}
T2:数论..
这块内容还是不太懂的..主要是多积累,如果有遇上的话就很好解决了
=-=不太懂这题的原理...忧伤
#include<cstdio>
#include<cstring>
using namespace std;
int tot=0,ans=0;
int n,m;
int f[10000001];
int main(){
freopen("shlqsh.in","r",stdin);
freopen("shlqsh.out","w",stdout);
scanf("%d%d",&n,&m);
for(int i=1;i<=m;i++)
tot+=m/i;
for(int i=1;i<=n-1;i++)
ans+=(n-1)/i;
printf("%d",tot-ans);
return 0;
}
T4:最大生成树
先说说T4好了...毕竟T3没有改..不懂怎么说
T4算是很裸的最大生成树了
就是有一个地方需要注意,就是给男生编号这个地方
你想啊...你需要区别男生女生对吧..男生就在女生后面往下编就可以
还有打了这题,除了对最大生成树复习之外,貌似对最后一步的加边操作有了更深的理解了吧,if(k==n+m-1) break;
嗯。。顺便回顾一下最大生成树的内容:
1.存边f[i].a,f[i].b,f[i].c
2.排序(根据是求最大生成树还是最小生成树来定..),感觉有时也需要看题目,PS:顺便注意一下一个struct排序时的用法
struct qem{
int a,b,z;
}f[200001];
int cmp(qem f,qem b){
return f.z>b.z;
}
3.加边,直到构成一颗树为止
这一步需要用来并查集,来判断是否有共同的祖先,进行n-1的加边操作即可
附上代码..
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int n,m,r,h,t,ans=0;
int x,y,z,tot=0,maxn;
struct qem{
int a,b,z;
}f[200001];
int cmp(qem f,qem b){
return f.z>b.z;
}
int fa[200001];
int find(int x){
if(fa[x]==x) return x;
else return fa[x]=find(fa[x]);
}
int main(){
freopen("conscription.in","r",stdin);
freopen("conscription.out","w",stdout);
scanf("%d%d%d",&n,&m,&r);
for(int i=1;i<=r;i++){
scanf("%d%d%d",&x,&y,&z);
y+=n;
f[i].a=x;
f[i].b=y;
f[i].z=z;
}
for(int i=0;i<=n+m;i++) fa[i]=i;
sort(f+1,f+r+1,cmp);
int k=0;
for(int i=1;i<=r;i++){
h=find(f[i].a);
t=find(f[i].b);
if(h!=t){
fa[h]=t;
ans+=f[i].z;
++k;
}
if(k==n+m-1) break;
}
tot=10000*(m+n)-ans;
printf("%d",tot);
return 0;
}
T3:spfa
不是太明白怎么打..
附上标程吧..
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <vector>
#include <queue>
#include <utility>
#define fi first
#define se second
using namespace std;
const int inf=2000000000;
typedef pair<int,int> pii;
vector<pii> a[10010];
priority_queue<pii> q;
int g[110][110],d[10010],p[10010],ans[10010];
bool f[10010];
pii v[10010];
int main(){
int n,s,t,nn,mm,i,j,x,y,sx,sy,tx,ty;
vector<pii>::iterator it;
freopen("kingdom.in","r",stdin);
freopen("kingdom.out","w",stdout);
scanf("%d%d%d%d%d%d",&nn,&mm,&sx,&sy,&tx,&ty);
memset(g,0,sizeof(g));
for (i=1;i<=mm;i++){
scanf("%d%d",&x,&y);
g[x][y]=g[y][x]=1;
}
n=0;
for (i=1;i<nn;i++)
for (j=i+1;j<=nn;j++)
if (g[i][j]){
v[++n].fi=i;v[n].se=j;
if (sx==i && sy==j) s=n;
if (tx==i && ty==j) t=n;
v[++n].fi=j;v[n].se=i;
if (sx==j && sy==i) s=n;
if (tx==j && ty==i) t=n;
}
for (i=1;i<n;i++)
for (j=i+1;j<=n;j++)
if (v[i].fi!=v[j].se || v[i].se!=v[j].fi)
if (v[i].fi==v[j].fi){
if (g[v[i].se][v[j].se]){
a[i].push_back(make_pair(j,1));
a[j].push_back(make_pair(i,1));
}
}
else
if (v[i].se==v[j].se){
if (g[v[i].fi][v[j].fi]){
a[i].push_back(make_pair(j,1));
a[j].push_back(make_pair(i,1));
}
}
else
if (g[v[i].fi][v[j].fi] && g[v[i].se][v[j].se]){
a[i].push_back(make_pair(j,2));
a[j].push_back(make_pair(i,2));
}
for (i=1;i<=n;i++){
d[i]=inf;p[i]=0;f[i]=false;
}
d[s]=0;q.push(make_pair(0,s));
for (i=1;i<=n;i++){
while (f[x=q.top().se]) q.pop();
q.pop();
if (x==t) break;
f[x]=true;
for (it=a[x].begin();it!=a[x].end();it++){
y=it->fi;
if (!f[y] && d[x]+it->se<d[y]){
d[y]=d[x]+it->se;p[y]=x;
q.push(make_pair(-d[y],y));
}
}
}
x=t;ans[y=1]=t;
while (p[x]){
ans[++y]=p[x];x=p[x];
}
printf("%d %d\n",d[t],y);
for (i=y;i>0;i--)
printf("%d %d\n",v[ans[i]].fi,v[ans[i]].se);
return 0;
}
晚安..睡觉了..
明天中午希望可以写点D7的题解吧..
希望明天加油...BLESS ALL
世界晚安...
D8的更多相关文章
- WordPress D8 主题当中截取文章首图并显示的函数
取自 WordPress D8 主题; 路径 theme\d8\modules ; if ( ! function_exists( 'deel_thumbnail' ) ) : function de ...
- 为何你跟着滴滴D8级前端大神撸代码,技术却依旧原地踏步?
引子 听说最近有很多小伙伴,热衷于在慕课网上学习各种前端实战教程,并以完成项目为奋斗目标.比如本文接下来要提到的<Vue2.0高级实战之开发移动端音乐App>,这门课程的传授者是来自滴滴D ...
- FF D8 FF FE 00 24 47 00转图片
String[] img = "FF D8 FF FE 00 24 47 00 9D 0C 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 F0 0 ...
- 8、D8: Default interface methods are only supported starting with Android N (--min-api 24): void
1.错误信息 升级完 Android N 后,有些项目运行起来报错信息大致如下: Default interface methods are only supported starting with ...
- ArcGIS基于DEM计算水流方向的方法(D8算法)
ArcGIS采用D8算法计算水流方向(9.3.1后新增),输入数据应首先完成了洼地填充处理: One of the keys to deriving hydrologic characteristic ...
- 使用 D8 分析 javascript 如何被 V8 引擎优化的
在上一篇文章中我们讲了如何使用 GN 编译 V8 源码,文章最后编译完成的可执行文件并不是 V8,而是 D8.这篇我们讲一下如何使用 D8 调试 javascript 代码. 如果没有 d8,可以使用 ...
- 预科班D8
2020.09.16星期三 预科班D8 学习内容: 一.注释 单行注释 ==>用 # 写在上一行或者该行后面 多行注释 ==>用 ''' '''或""" &q ...
- 正式班D8
2020.10.15星期四 正式班D8 一.上节课复习 OSI七层协议 socket socket是对传输层以下的封装 IP+port标识唯一一个基于网络通讯的软件 TCP与UDP TCP:因为在通信 ...
- D8调试工具——jsvu的使用细则
d8 is V8's own developer shell. D8 是一个非常有用的调试工具,你可以把它看成是 debug for V8 的缩写.我们可以使用 d8 来查看 V8 在执行 JavaS ...
- 桥牌笔记:Skill Level 4 D8
西拿黑桃K.A后,转攻小方块. 看来只有一个小红桃失张了.飞方块没有必要冒险.但将牌分布4-0时会有点麻烦.
随机推荐
- 转让lua性能executeGlobalFunction
没有其他的,搞搞cocos2dx的lua文字,话lua这件事情在几年前学过一段时间.还曾对自己c++介面,我已经做了一些小东西.只是时间的流逝,模糊记忆. 拿起点功夫和成本.下面是我的一些经验. co ...
- Scriptcase演示程序,现在,他们使用SC多么简单的开发系统
Scriptcase它内置了一批成熟的业务系统,我们的系统的一部分已经完成和功能微调,在互联网上.检查每个人Scriptcase如何简单可以加速的功能模块的发展. 访问 http://www.phps ...
- 去除win7 64位系统桌面图标小箭头
http://blog.csdn.net/pipisorry/article/details/24865195 在桌面新建一个文本文档 去除箭头.txt,把例如以下代码粘贴到文档中reg add &q ...
- 【百度地图API】暑假放假回老家——城市切换功能
原文:[百度地图API]暑假放假回老家--城市切换功能 任务描述: 酸奶小妹放寒假啦,要从北京呼啦一下飞回重庆呢.现在百度地图API上不能直接切换城市,怎么办呢? 如何实现: 利用API先搜索到要去城 ...
- linux 在系统启动过程
从学习<鸟哥linux私人厨房> 用于在计算机系统启动,计算机硬件和软件由(它包含的操作系统软件)包括.对于操作系统在同一台计算机硬件方面的表现,该系统配备有硬件是公用,不同的系统是 的操 ...
- 为Pythonic论坛添加一个“专题”功能(续)
上篇博文<为Pythonic论坛添加一个“专题”功能>,在模板的层次上对发帖进行了限制.也就是根据用户是否拥有权限来决定是否显示发帖框. 但是自从这么“投机取巧”的写完模板后,整夜辗转反侧 ...
- GRIDDATA(表格)第二版
JQUERY 插件开发——GRIDDATA(表格)第二版 开发背景 表格插件之前我也写个一篇,当时写那个插件的时候,我自己还没有总结出写插件的方法,虽然功能实现了,但是使用起来还是有点别扭的,并且需要 ...
- 图文详解ReSharper 8.1功能变化
ReSharper 8.1版本已经发布有段时间了,被广大开发者购买和试用,今天小编就ReSharper 8.1功能变化就行详细的解说. 支持TypeScript 突出了重构(重命名,引入变量).导航. ...
- 阻止check事件冒泡
在Datagrid中添加了checkbox,想实现的效果是: 1.点击行中任意位置,该行的复选框变为选中状态,同时该行也获得焦点: 2.点击复选框,复选框打勾,同时该行获取焦点. 要实现功能1,用到d ...
- 织梦不仅是链接到其他调用next
//打开系统文件织梦 /include/arc.archives.class.php 找到GetPreNext函数 function GetPreNext($gtype='') { $rs = ''; ...