Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
Home Page
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Update your info
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
User ID:
Password:
  Register

又是个水題

Posted by KatrineYang at 2016-11-16 10:41:52 on Problem 1557
#include <stdio.h>
#include <string.h>
#include <iostream>
#include <cstdlib>
#include <string>
#include <vector>
#include <map>
#include <cmath>

using namespace std;

struct array{
	int D;
	int C[16], L[16], U[16];
	void js();
	void jsAddr(string, int*);
};

map<string, array> arrays;

void array::js(){
	for(int d = D-1; d > 0; d--){
		C[d] = C[d+1] * (U[d+1]-L[d+1]+1);
	}
	for(int d = 1; d <= D; d++){
		C[0] -= C[d] * L[d];
	}
}

void array::jsAddr(string name, int *pos){
	int addr = C[0];
	for(int i = 1; i <= D; i++) addr += C[i] * pos[i];
	cout << name << "[";
	for(int i = 1; i <= D; i++){
		cout << pos[i] << (i==D? "] = ": ", ");
	}
	cout << addr << endl;
}

int main(int argc, char **argv){
	int arrayNum, addNum;
	cin >> arrayNum >> addNum;
	for(int i = 0; i < arrayNum; i++){
		string name;
		array tmp;
		int sz;
		cin >> name >> tmp.C[0] >> sz >> tmp.D;
		tmp.C[tmp.D] = sz;
		for(int j = 1; j <= tmp.D; j++){
			cin >> tmp.L[j] >> tmp.U[j];
		}
		tmp.js();
		arrays.insert(pair<string, array>(name, tmp));
	}
	for(int i = 0; i < addNum; i++){
		string name;
		cin >> name;
		map<string, array>::iterator it = arrays.find(name);
		int pos[16];
		int dim = it->second.D;
		for(int i = 0; i < dim; i++) cin >> pos[i];
		it->second.jsAddr(name, pos-1);
	}
	return 0;
}

Followed by:

Post your reply here:
User ID:
Password:
Title:

Content:

Home Page   Go Back  To top


All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator