题目链接:http://codeforces.com/gym/102012/problem/A

题目给出的算法跑出的数据是真的水

#include<iostream>
#include<algorithm>
using namespace std;
unsigned long long k1,k2;
#define inf 0x3f3f3f3f
#define mod 1000000007
int tot;
unsigned long long xo()
{
unsigned long long k3=k1,k4=k2;
k1=k4;
k3^=k3<<;
k2=k3^k4^(k3>>)^(k4>>);
return k2+k4;
}
struct edge{
int u,v;
unsigned long long w;
bool operator <(const edge &a)const{
return w<a.w;
}
}e[];
int n,m,fa[],cnt;
unsigned long long ans;
void add(int u,int v,unsigned long long w)
{
e[++cnt].u=u;
e[cnt].v=v;
e[cnt].w=w;
}
void gen()
{
int u,v;
unsigned long long w;
scanf("%d%d%llu%llu",&n,&m,&k1,&k2);
cnt=;
for(int i=;i<=m;i++)
{
u=xo()%n+;
v=xo()%n+;
w=xo();
add(u,v,w);
}
}
int _find(int u)
{
if(fa[u]==u)return u;
return fa[u]=_find(fa[u]);//路径压缩
}
unsigned long long solve()
{
tot=;
sort(e+,e++cnt);
int u,v,x,y;
unsigned long long w;
ans=;
for(int i=;i<=n;i++)
fa[i]=i;
for(int i=;i<=cnt;i++)
{
u=e[i].u;v=e[i].v;w=e[i].w;
x=_find(u);y=_find(v);
if(x!=y)
{
ans=(ans+w)%mod;
tot++;
fa[y]=x;
if(tot==n)return ans;
}
}
return ;
}
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
gen();
ans=inf;
printf("%llu\n",solve());
}
return ;
}

2018徐州现场赛A的更多相关文章

  1. 2018 icpc 徐州现场赛G-树上差分+组合数学-大佬的代码

    现场赛大佬打印的代码,观摩了一哈. 写了注释,贴一下,好好学习.%%%PKU 代码: //树上差分(LCA) #include<bits/stdc++.h> #define For(i,x ...

  2. 2018徐州网络赛 - Trace

    题意:n个左下角为原点右上角在第一象限的矩形不断覆盖,求最后形成的图形的周长 x和y是独立的,分别维护两棵线段树,一棵表示x坐标下最大的y值,另一棵表示y坐标下最大的x值 从覆盖的角度来考虑,如果逆序 ...

  3. ACM-ICPC 2018徐州网络赛-H题 Ryuji doesn't want to study

    死于update的一个long long写成int了 真的不想写过程了 ******** 树状数组,一个平的一个斜着的,怎么斜都行 题库链接:https://nanti.jisuanke.com/t/ ...

  4. 2018徐州网络赛H. Ryuji doesn't want to study

    题目链接: https://nanti.jisuanke.com/t/31458 题解: 建立两个树状数组,第一个是,a[1]*n+a[2]*(n-1)....+a[n]*1;第二个是正常的a[1], ...

  5. 2018南京现场赛K 随机输出

    题目链接:http://codeforces.com/gym/101981/attachments n和m太小,空地联通无环,总步数太大,直接随机输出5w个方向 #include<iostrea ...

  6. 2018南京现场赛D 模拟退火

    题目链接:https://codeforces.com/gym/101981/attachments 给你n个城市的三维坐标,叫你求得一个坐标使这个坐标到其他城市的最大距离最小,并输出这个距离(距离不 ...

  7. 2019icpc徐州现场赛 H Yuuki and a problem (树状数组套主席树)

    题意 2e5的数组,q个操作 1.将\(a[x]\)改为y 2.求下标l到r内所有的\(a[i]\)通过加法不能构成的最小的值 思路 通过二操作可以知道需要提取l到r内的值及其数量,而提取下标为l到r ...

  8. 2018 ICPC 徐州网络赛

    2018 ICPC 徐州网络赛 A. Hard to prepare 题目描述:\(n\)个数围成一个环,每个数是\(0\)~\(2^k-1\),相邻两个数的同或值不为零,问方案数. solution ...

  9. Ryuji doesn't want to study 2018徐州icpc网络赛 树状数组

    Ryuji is not a good student, and he doesn't want to study. But there are n books he should learn, ea ...

随机推荐

  1. 代码片段 修改Windows用户名

    cmd /c wmic useraccount where name=' 记录防备忘

  2. H3C RIP基本配置举例

  3. MySQL之Field 'email' doesn't have a default value问题

    MySQL在出现这个Field xxx doesn't have a default value错误的原因是:我们设置了该字段为非空,但是我们没有设置默认值照成的. 比如我们创建一个表: CREATE ...

  4. The 10th Shandong Provincial Collegiate Programming Contest H.Tokens on the Segments(贪心+优先级队列 or 贪心+暴力)

    传送门 •题意 二维平面上有 n 条线段,每条线段坐标为 $(l_i,i),(r_i,i)$: 平面上的每个整点坐标上都可以放置一枚硬币,但是要求任意两枚硬币的横坐标不相同: 问最多有多少条线段可以放 ...

  5. DP刷题记录(持续更新)

    DP刷题记录 (本文例题目前大多数都选自算法竞赛进阶指南) TYVJ1071 求两个序列的最长公共上升子序列 设\(f_{i,j}\)表示a中的\(1-i\)与b中色\(1-j\)匹配时所能构成的以\ ...

  6. java的四种代码块

    用{}括起来的称为代码块: 普通代码块:类中方法的方法体 构造代码块:类中{}直接括起来的语句,每次创建对象都会被调用,先于构造函数执行 静态代码块:类中static{}括起来的语句,只执行一次,先于 ...

  7. CSS---文本相关属性

    text-transform 检索或设置对象中的文本的大小写. 属性值 none:无转换 capitalize:将每个单词的第一个字母转换成大写 uppercase:将每个单词转换成大写 lowerc ...

  8. ZOJ Problem Set - 1090——The Circumference of the Circle

      ZOJ Problem Set - 1090 The Circumference of the Circle Time Limit: 2 Seconds      Memory Limit: 65 ...

  9. 牛客练习赛4 A Laptop

    传送门:https://ac.nowcoder.com/acm/contest/16/A 题意: 每个物品有2个属性,求有多少个物品的两个属性完全小于另一个物品 题解: 求逆序对板子题 代码: /** ...

  10. Jquery xhr2跨域

    相关享目托管在github: https://github.com/devgis/CSharpCodes