2017.10.14一试
来源:互联网 发布:淘宝二维码用微信打开 编辑:程序博客网 时间:2024/05/16 01:13
哦。亲爱的豆豆。
你为什么要把你的作业交给机器来做?
难怪你智商低。难怪你做不来数学题。
难怪你还跑不过鸡。
以上鬼扯。
T1
轻松暴力~
T2
轻松暴力~
T3
轻松暴力~(雾)
T2
嗯……暴力是可以。打表嘛。
但是!我们不能满足于此!
代码如下:
#include<iostream>#include<iomanip>#include<cstdio>#include<cstdlib>#include<string>#include<cstring>#include<cmath>#include<algorithm>#include<queue>using namespace std;inline int read(){ int X=0,w=1; char ch=0; while(ch<'0' || ch>'9') {if(ch=='-') w=-1;ch=getchar();} while(ch>='0' && ch<='9') X=(X<<3)+(X<<1)+ch-'0',ch=getchar(); return X*w;}inline void write(int x){ if(x<0) putchar('-'),x=-x; if(x>9) write(x/10); putchar(x%10+'0');}int t;long long x;bool judge(long long x){ long long jud1 = (x-1)/3; if(3*jud1+1!=x)return false; long long jud2 = sqrt(1+4*jud1); if(jud2*jud2!=1+4*jud1)return false; if(jud2%2!=1)return false; //cout << (jud2+1)/2 << " " << (jud2-1)/2 << endl; return true;}int main(){ std::ios::sync_with_stdio(false); std::cin.tie(0); cin >> t; while(t--) { cin>>x; cout<<((judge(x))?("YES"):("NO"))<<endl; }}
PS:撇开暴力,这也不算一道难题~
T3
这道题有点厉害……很难想啊……
代码如下:
#include<iostream>#include<iomanip>#include<cstdio>#include<cstdlib>#include<string>#include<cstring>#include<cmath>#include<algorithm>#include<queue>#include<vector>using namespace std;long long read(){ long long X=0,w=1; char ch=0; while(ch<'0' || ch>'9') {if(ch=='-') w=-1;ch=getchar();} while(ch>='0' && ch<='9') X=(X<<3)+(X<<1)+ch-'0',ch=getchar(); return X*w;}const int kkk=100500;#define pii pair<int,long long>priority_queue< pair<long long,int> >que;int n,m,k,ki[kkk],pos[kkk];long long ans,dis[kkk];vector<pii>side[kkk];int main(){ std::ios::sync_with_stdio(false); std::cin.tie(0);std::cout.tie(0); for(int t=read(),tt=1;tt<=t;++tt) { n = read(); m = read(); for(int i=1;i<=n;i++)side[i].clear(); for(int i=1;i<=m;i++) { int u=read(),v=read(); long long val=read(); side[u].push_back(make_pair(v,val)); side[v].push_back(make_pair(u,val)); } k = read(); memset(pos,0,sizeof(pos)); for(int i=1;i<=k;i++)ki[i]=read(),pos[ki[i]]=i; ans = 0x3f3f3f3f3f3f3f3f; for(int j=0;(1<<j)<=k;j++) { memset(dis,127,sizeof(dis)); while(!que.empty())que.pop(); for(int i=1;i<=k;i++)if(i&(1<<j)) dis[ki[i]]=0,que.push(make_pair(0,ki[i])); while(!que.empty()) { int u=que.top().second; que.pop(); if(pos[u]&&!(pos[u]&(1<<j))) {ans=min(ans,dis[u]);break;} for(int i=side[u].size()-1;i>=0;i--) { int v=side[u][i].first; long long val=side[u][i].second; if(dis[v]>dis[u]+val) { dis[v] = dis[u] + val; que.push(make_pair(-dis[v],v)); } } } } cout << ans << endl; }}
大抵就是如此。
以上!
阅读全文
0 0
- 2017.10.14一试
- 2017.10.17一试
- 2017.10.16一试
- 2017.10.13一试
- 2017.10.11一试
- 2017.10.19一试
- 2017.10.20一试
- 2017.10.23一试
- 2017.10.24一试
- 2017.10.28一试
- 2017.10.30一试
- 开心一试
- 机试练习题一
- 扫雷【SCOI2005一试】
- Jloi 2015 一试
- ZJOI2016一试游记
- ZJOI2017一试游记
- GDOI2017模拟一试
- 最小生成树之普里姆(prim)法求最小生成树
- 第三天 DIV+CSS布局实例
- 安卓获取手机联系人
- mysql可视化工具-navicat的下载和使用
- Hibernate关系映射级别注解(多对多单向外键关联、多对多双向外键关联)
- 2017.10.14一试
- 文本挖掘
- 1073. Scientific Notation (20)
- QNX程序的键盘输入与控制台输出
- python 求 牛顿插值法中的差商表
- 在使用RBO的情况下,出现两条或两条以上的执行路径的等级值相同的情况下,如何调整执行计划?
- 数组扩容
- Android 进程保活--无限播放音乐
- 记录自己的大数据学习之路