一名大三older 希望能帮助大一萌新。。。加油 xiandianer!!!!;

xdoj 1260 (B) 水题 用了一下STL (好长啊。。。)

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<map>
using namespace std;
const int N=;
struct T{
string suj;
double p;
bool operator <(const T& b) const {
return suj<b.suj;
}
};
map <T,int> mapp;
int n;
double f (int x) {
if (x<=) return 0.0;
if (x<=) return 1.0;
if (x<=) return 1.5;
if (x<=) return 1.7;
if (x<=) return 2.0;
if (x<=) return 2.3;
if (x<=) return 2.7;
if (x<=) return 3.0;
if (x<=) return 3.3;
if (x<=) return 3.7;
return 4.0;
}
int main ()
{
cin>>n;
map<T,int>::iterator it;
for (int i=;i<=n;i++) {
T temp;
int w;
cin>>temp.suj>>temp.p>>w;
if (mapp[temp]<w)
mapp[temp]=w;
}
it=mapp.begin();
double sum=0.0;
double k=0.0;
double nn=0.0;
while (it!=mapp.end()) {
sum+=(it->first.p)*(it->second);
k+=(it->first.p)*f(it->second);
nn+=it->first.p;
it++;
}
printf ("%.1lf\n%.2lf\n",sum/nn,k/nn);
return ;
}

xdoj 1255 (C) 水题 不明白为什么不加getchar() 会GG;

#include<iostream>
#include<cstdio>
#include<string>
using namespace std;
char* str="0123456789ABCDEF";
int main ()
{
int x,y,z;
while (~scanf("(%d, %d, %d)",&x,&y,&z)) {
char s[];
s[]=str[x/];
s[]=str[x%];
s[]=str[y/];
s[]=str[y%];
s[]=str[z/];
s[]=str[z%];
s[]='\0';
cout<<"#"<<s<<endl;
getchar();
}
return ;
}

xdoj 1265(D) 取余找循环节呗。

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int N=;
int mod=;
struct T {
int a;
int b;
};
T t[N];
int p[N];
int A,B,C;
int n,k;
int mycmp (T aa,T bb) {
return aa.a>bb.a;
}
int main ()
{
int nn;
scanf ("%d",&nn);
while (nn--) {
scanf ("%d %d %d",&A,&B,&C);
memset (p,,sizeof(p));
int i=;
t[].a=A;
p[A]=;
while () {
t[i+].a=(t[i].a*B+C)%mod;
if (p[t[i+].a])
break;
else
p[t[i+].a]=i+;
i++;
}
int x1=p[t[i+].a];
int x2=i;
int num=x2-x1+;
scanf ("%d %d",&n,&k);
int times=(n-x1+)/num;
for (i=;i<=x2;i++) {
if (i<x1) t[i].b=;
else if (i<=x1+(n-x1+)%num)
t[i].b=times+;
else
t[i].b=times;
}
sort (t+,t++x2,mycmp);
i=;
while () {
if (p[t[i].a]>n) {i++; continue;}
if (k-t[i].b<=) break;
else k-=t[i].b;
i++;
}
printf ("%d\n",t[i].a);
}
return ;
}

xdoj 1262(E) 找A前后Q数目相乘

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
typedef long long LL;
const int N=1e5+;
char str[N];
int main ()
{
scanf ("%s",str);
int len=strlen(str);
LL n1=;
for (int i=;i<len;i++) {
if (str[i]=='Q')
n1++;
}
LL n2=;
LL sum=;
for (int i=;i<len;i++) {
if (str[i]=='Q')
n2++;
if (str[i]=='A')
sum+=n2*(n1-n2);
}
printf ("%lld\n",sum);
return ;
}

xdoj  1264(F) 找一下规律 发现数据按照二进制递增的

#include<cstdio>
#include<cstring>
#include<iostream>
using namespace std;
typedef long long LL;
bool a[];
int main ()
{
LL n;
while (~scanf ("%lld",&n)) {
memset (a,,sizeof(a));
int i=;
while (n) {
if (n&) a[i]=;
n=n>>;
i++;
}
for (int i=;i>=;i--) {
if (a[i])
printf ("R");
else
printf ("G");
}
printf ("\n");
}
return ;
}

xdoj 1261(G)  开始用图做的 GG了最后用的并查集

#include<cstdio>
#include<cstring>
#include<iostream>
using namespace std;
const int N=1e6+;
int p[N];
int f[N];
int n,m;
int _find(int x) {
if (x!=f[x])
f[x]=_find(f[x]);
return f[x];
}
int main ()
{
while (~scanf ("%d %d",&n,&m)) {
for (int i=;i<=n;i++)
f[i]=i;
memset(p,,sizeof(p));
for (int i=;i<=m;i++) {
int op,a,b;
scanf ("%d %d %d",&op,&a,&b);
if (op==) {
int x1=_find(a);
int x2=_find(b);
if (x1==x2||p[x1]==x2) continue;
if (!p[x1]&&!p[x2]) {
p[x1]=x2;
p[x2]=x1;
}
else if (!p[x1]&&p[x2]) f[x1]=p[x2];
else if (!p[x2]&&p[x1]) f[x2]=p[x1];
else {f[x2]=p[x1]; f[p[x2]]=x1;}
//for (int i=1;i<=n;i++)
// cout<<_find(i)<<" "<<p[i]<<endl;
}
else {
int x1=_find(a);
int x2=_find(b);
if (x1==x2)
printf ("In the same category.\n");
else if (p[x1]==x2)
printf ("In different category.\n");
else
printf ("Not sure yet.\n");
}
}
}
return ;
}

xdoj  1254(H) 大整数减法 基本功

#include<iostream>
#include<cstdio>
#include<cstring>
#include<string>
using namespace std;
const int N=;
int a[N];
int b[N];
int x1[N];
int x2[N];
string s1,s2;
int cmp (int a[],int b[]) {
for (int i=;i>=;i--) {
if (a[i]>b[i]) return ;
if (a[i]<b[i]) return -;
}
return ;
}
void f (int x[]) {
memset(x1,,sizeof(x1));
memset(x2,,sizeof(x2));
int j=;
for (int i=s1.size()-;i>=;i--)
x1[j++]=s1[i]-'';
j=;
for (int i=s2.size()-;i>=;i--)
x2[j++]=s2[i]-'';
for (int i=;i<s1.size();i++) {
if (x1[i]<x2[i]) {
j=i;
while (x1[j+]==) {
x1[j+]=;
j++;
}
x1[j+]--;
x1[i]+=;
}
x[i]=(x1[i]-=x2[i]);
}
return ;
}
int main ()
{
cin>>s2>>s1;
f(a);
cin>>s2>>s1;
f(b);
if (cmp(a,b)>)
printf ("Ting\n");
else if (cmp(a,b)==)
printf ("Excellent\n");
else
printf ("Yu\n");
return ;
}

xdoj 1257 (I) 曼哈顿距离 我也是百度的。。。哈哈哈

#include<cstdio>
#include<iostream>
#include<algorithm>
using namespace std;
typedef long long ll;
#define INF 0x3f3f3f3f
int T,n;
ll a1,a2,b1,b2;
int main()
{
scanf("%d",&T);
while(T--)
{
scanf("%d",&n);
a1=b1=INF,a2=b2=-INF;
for(int i=;i<n;i++)
{
ll x,y;
scanf ("%lld %lld",&x,&y);
a1=min(a1,x+y),a2=max(a2,x+y);
b1=min(b1,x-y),b2=max(b2,x-y);
}
ll ans=max(a2-a1,b2-b1);
printf("%lld\n",ans);
}
return ;
}

xdoj 1250 (J) 好吧这道题我想了好久。。一天?/ 最后感谢formilk的i提示 用的先序遍历 。。居然过了。但应该不是最好的解法

#include<cstdio>
#include<algorithm>
using namespace std;
const int N=5e6+;
struct T {
int x;
int y;
};
T k[];
T s[*N];
int ss;
int t;
int n_max;
int a,b,c,d,n,m;
void fare (int a,int b,int c,int d) {
if (b+d>n_max) return ;
fare (a,b,a+c,b+d);
k[++t].x=(a+c);
k[t].y=(b+d);
fare (a+c,b+d,c,d);
return ;
}
int gcd (int x,int y) {
return !y?x:gcd(y,x%y);
}
void f(int& x,int& y ) {
int p=gcd (x,y);
x=x/p;
y=y/p;
return ;
}
int main ()
{
int Q;
scanf ("%d",&Q);
while (Q--) {
scanf ("%d %d %d %d %d %d",&a,&b,&c,&d,&n,&m);
ss=;
f(a,b); T t1={a,b};
f(c,d); T t2={c,d};
n_max=max(b,d);
t=;
k[t].x=; k[t].y=;
fare (,,,);
k[++t].x=;k[t].y=;
int i;
for (i=;;i++) if (k[i].x==t2.x&&k[i].y==t2.y) break;
for (;;i--) {
s[++ss]=k[i];
if (k[i].x==t1.x&&k[i].y==t1.y) break;
}
int nn=;
while (){
t1=s[ss--];
nn++;
if (nn==n+) break;
if (ss==) break;
t2=s[ss];
while () {
int x=t1.x+t2.x;
int y=t1.y+t2.y;
f(x,y);
if (y<=m) {
t2.x=x; t2.y=y;
s[++ss]=t2;
}
else
break;
}
}
if (nn==n+&&!(t1.x==c&&t1.y==d))
printf ("%d %d\n",t1.x,t1.y);
else
printf ("-1\n");
}
return ;
}

有点匆忙  。。。还有作业啊 欢迎交流QQ-821474143

Contest1036 - 2017西安电子科技大学程序设计新生赛网络预选赛的更多相关文章

  1. 西安电子科技大学第16届程序设计竞赛 G-小国的复仇

    西安电子科技大学第16届程序设计竞赛网络同步赛 G-小国的复仇 2 链接:https://www.nowcoder.com/acm/contest/107/G来源:牛客网 题目描述 众所周知,汀老师是 ...

  2. 西安电子科技大学第16届程序设计竞赛网络同步赛 G-小国的复仇

    sb找规律. 分解因数. #include<bits/stdc++.h> #define LL long long #define fi first #define se second # ...

  3. 西安电子科技大学第16届程序设计竞赛 E Xieldy And His Password

    链接:https://www.nowcoder.com/acm/contest/107/E来源:牛客网 Xieldy And His Password 时间限制:C/C++ 1秒,其他语言2秒 空间限 ...

  4. 西安电子科技大学第16届程序设计竞赛 B Words Game

    链接:https://www.nowcoder.com/acm/contest/107/B来源:牛客网 Words Game 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 13107 ...

  5. 西安电子科技大学第16届程序设计竞赛 F Operating System (unique() 去重函数)

    链接:https://www.nowcoder.com/acm/contest/107/F来源:牛客网 Operating System 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ ...

  6. 福建工程学院第七届ACM程序设计新生赛 (同步赛)

    A.关电脑 #include<bits/stdc++.h> using namespace std; typedef long long LL; int T,h1,m1,s1,h2,m2, ...

  7. 第五届华中区程序设计邀请赛暨武汉大学第十四届校赛 网络预选赛 A

    Problem 1603 - Minimum Sum Time Limit: 2000MS   Memory Limit: 65536KB   Total Submit: 564  Accepted: ...

  8. Minieye杯第十五届华中科技大学程序设计邀请赛现场同步赛 I Matrix Again

    Minieye杯第十五届华中科技大学程序设计邀请赛现场同步赛 I Matrix Again https://ac.nowcoder.com/acm/contest/700/I 时间限制:C/C++ 1 ...

  9. Codeforces 801 A.Vicious Keyboard & Jxnu Group Programming Ladder Tournament 2017江西师大新生赛 L1-2.叶神的字符串

    A. Vicious Keyboard time limit per test 2 seconds memory limit per test 256 megabytes input standard ...

随机推荐

  1. 服务器性能调优(netstat监控大量ESTABLISHED连接与Time_Wait连接问题)

    netstat监控大量ESTABLISHED连接与Time_Wait连接问题 问题描述: 在不考虑系统负载.CPU.内存等情况下,netstat监控大量ESTABLISHED连接与Time_Wait连 ...

  2. Nop 4.1版本已经迁移到.net core2.1版本

    1. github 下载,4.1版本,运行, install时,会让你新增后台账户密码,sql服务器 2. 在Configuration 新增Language 3. 上传中文语言包 , 你也可以先导出 ...

  3. Win10系列:VC++绘制几何图形4

    三角形绘制完成以后,接下来介绍如何给项目添加主入口函数.打开D2DBasicAnimation.h头文件,添加如下的代码定义一个DirectXAppSource类. //定义类DirectXAppSo ...

  4. spring boot 打包可以运行,但是执行main方法不能运行

    报错信息如下 2017-10-23 15:16:09.750 ERROR 7664 --- [  restartedMain] o.s.b.d.LoggingFailureAnalysisReport ...

  5. css 中的grid布局基础

    CSS Grid Layout为CSS引入了一个二维网格系统.网格可用于布局主要页面区域或小型用户界面元素. 网格是一组交叉的水平和垂直线 - 一组定义列,其他行.元素可以放在网格上,以行或者列为标准 ...

  6. oracle servicename 与SID的区别

    http://blog.csdn.net/z69183787/article/details/25706269

  7. awk计算最大值,最小值,平均值的脚本

    传入至少三个数字参数到脚本awk_file,并计算出最大,最小,平均值.需要判断传入的数字是否足够,否则输出警告信息.平均值保留两位小数. 如执行bash awk_file 3 4 6 5,脚本输出结 ...

  8. HTTP协议详细解析

    HTTP协议详解 HTTP协议(HyperText Transfer Protocol,超文本传输协议)是因特网上应用最为广泛的一种网络传输协议,所有的WWW文件都必须遵守这个标准. HTTP是一个基 ...

  9. TagHelpers 使用

    @using AuthoringTagHelpers @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers // 手动高亮

  10. Effective Java Methods Common to All Objects

    Obey the general contract when overriding equals 先了解equals 和 == 的区别,如果不重写equals, equals比较的仅仅只是是否引用同一 ...